| |||
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. |