| |||
| Respuesta: Crear Combobox en JSP que tome valores de MySQL, ayuda! Cita: Mencionas que usas JSP pero no mencionas si usas servlets, sí ese fuera el caso:Antes de desplegar tú jsp:
Dentro de tu jsp:
Creo que lo mas importante esta en el jsp:
Código:
......<%
String arreglo1=(String) request.getAttribute("id"); //id puede ser modificado (al igual que "arreglo1") por cualquier variable de tú elección
String arreglo2=(String) request.getAttribute("nombre"); //nombre puede ser modificado (al igual que "arreglo2") por cualquier variable de tú elección
String opciones="";
for (int i=0;i<arreglo1.length;i++)
{
opciones="<option value="+arreglo1+">"+arreglo2+"</option>";
//Observar que los ids van en "value" y que los nombres va antes del ">" y después del "</option>"
}
%>
<!--Código de tu jsp--!> <select name="Select1"> <%=opciones%> </select></form> <!--Continua tu código o lógica de negocio--!> Esta es una manera que se me ocurrió, aunque la verdad tengo curiosidad acerca de sí se puede hacer atraves del doGet u otra forma. Editado: Esta solución es suponiendo que siempre existira info en la base de datos acerca de los id_nacionalidad y nombre, si se da el caso de que no exista info se tiene que modificar el código para tomar en cuenta nulos. PD: Para guardar los id_nacionalidad en la base de datos solo se hace en el servlet: String id_seleccionado=(String) request.getParameter("Select1"); Última edición por RAVA; 29/04/2009 a las 10:03 Razón: Se agrego mas info |
| ||||
| Respuesta: Crear Combobox en JSP que tome valores de MySQL, ayuda! En efecto, no estoy trabajando con Servlets, en realidad estoy haciendo en clases y JSP (javabean), mis conocimientos son bastante basicos, y he logrado que en la lista se muestre la nacionalidad, pero se guarde el id, sin embargo solo me muestra el primer pais de la lista, y los demas no, me gustaria que por favor revisaran el codigo y me dijeran si estoy haciendo algo mal :clase java:
Código:
archivo jsp(solo incluyo los codigos JAVA)package datos;
import beans.Nacionalidad;
import java.sql.*;
public class Combobox_nacionalidad {
Connection canal = null;
public Combobox_nacionalidad() {
cargardriver();
conectarbd();
}
public void cargardriver() {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("La Carga de Driver ha sido Satisfactoria...");
} catch (Exception e) {
System.out.println("Error en metodo CargarDriver()...");
}
}
public void conectarbd() {
try {
canal = DriverManager.getConnection("jdbc:mysql://localhost:3306/prueba_invesa", "root", "");
System.out.println("Conexion Satisfactoria...");
} catch(SQLException e) {
e.printStackTrace();
}
}
public Nacionalidad Listarprocedencia(Nacionalidad nacionalidad) {
PreparedStatement instruccion=null;
ResultSet resultado=null;
conectarbd();
try{
String sSql = "";
sSql = sSql + "select id_nacionalidad, Nombre from prueba_invesa.nacionalidad";
instruccion = canal.prepareStatement(sSql);
resultado=instruccion.executeQuery();
nacionalidad = new Nacionalidad();
while (resultado.next()) {
nacionalidad.setId_nacionalidad(resultado.getString(1));
nacionalidad.setNOmbre(resultado.getString(2));
break;
}
}
catch(Exception e) {
e.printStackTrace();
} finally{
try {
if (resultado != null) resultado.close();
if (instruccion != null) instruccion.close();
} catch (SQLException ex) {
}
}
return nacionalidad;
}
}
Código:
Como les repito, solo me muestra el primer dato de pais en el select, y funciona, pero me gustaria que los desplegara todos, ¿podrian ayudarme? se que existen otras formas de hacerlo, pero me gustaria me ayudaran a hacer funcionar esta, y si de hecho no hay forma con este codigo (cosa que no creo,porque muestra siquiera un valgo) pues gracias de antemano, un saludo.<jsp:useBean id="nacionalidad" scope="request" class="beans.Nacionalidad"/>
<jsp:useBean id="combocaja" scope="session" class="datos.Combobox_nacionalidad_1"/>
<%
String id_nacionalidad = nacionalidad.getId_nacionalidad();
String Nombre = nacionalidad.getNOmbre();
nacionalidad.setId_nacionalidad(id_nacionalidad);
nacionalidad.setNOmbre(Nombre);
nacionalidad=combocaja.Listarprocedencia();
%>
<select name="NACIONALIDAD" id="NACIONALIDAD">
<option>Seleccione nacionalidad</option>
<option value="<%=nacionalidad.getId_nacionalidad() %>"><%=nacionalidad.getNOmbre() %></option>
</select>
|
| |||
| Respuesta: Crear Combobox en JSP que tome valores de MySQL, ayuda! Buenas: A ver si te puedo echar una mano. El problema reside en dos puntos que tendrás que cambiar, según lo veo.
O lo que es lo mismo:
Código:
Y en el caso del JSP: public List<Nacionalidad> Listarprocedencia(Nacionalidad nacionalidad) {
PreparedStatement instruccion=null;
ResultSet resultado=null;
List<Nacionalidad> nacionalidades = new ArrayList<Nacionalidad>();
conectarbd();
try{
String sSql = "";
sSql = sSql + "select id_nacionalidad, Nombre from prueba_invesa.nacionalidad";
instruccion = canal.prepareStatement(sSql);
resultado=instruccion.executeQuery();
while (resultado.next()) {
nacionalidad = new Nacionalidad();
nacionalidad.setId_nacionalidad(resultado.getString(1));
nacionalidad.setNOmbre(resultado.getString(2));
nacionalidades.add(nacionalidad);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if (resultado != null) resultado.close();
if (instruccion != null) instruccion.close();
} catch (SQLException ex) {
}
}
return nacionalidades;
}
Código:
<%
List<Nacionalidad> nacionalidades = ListarProcedencia();
%>
<select name="NACIONALIDAD" id="NACIONALIDAD">
<option>Seleccione nacionalidad</option>
<% for (Nacionalidad nacionalidad : nacionalidades) { %>
<option value="<%=nacionalidad.getId_nacionalidad() %>"><%=nacionalidad.getNOmbre() %></option>
<% } %>
</select>
Espero que te sirva de ayuda (y que esté correcto ;)) Saludos. |