Foros del Web » Programación para mayores de 30 ;) » Java »

Seleccionar un dato de un combo y guardar su id correspondiente

Estas en el tema de Seleccionar un dato de un combo y guardar su id correspondiente en el foro de Java en Foros del Web. Hola, veran estoy desarrollando una aplicacion en jsp y mysql donde tengo 2 tablas, una que es estado donde almaceno el id y el nombre ...
  #1 (permalink)  
Antiguo 20/08/2010, 15:04
 
Fecha de Ingreso: julio-2010
Ubicación: Morelia
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta Seleccionar un dato de un combo y guardar su id correspondiente

Hola, veran estoy desarrollando una aplicacion en jsp y mysql donde tengo 2 tablas, una que es estado donde almaceno el id y el nombre correspondiente al estado, y otra que es usuario con un id, un nombre y un id_estado, en este momento estoy trabajando sobre un formulario donde almaceno el nombre de mi usuario, y tengo un combo, donde jalo todos mis estados registrados y los muestro, hasta aqui todo bien, ahora, al momento de almacenar mis datos en la BD solo quiero que se almacene el id del estado y no el nombre que estoy seleccionando, creen que pudieran ayudarme, aqui les dejo el codigo de como lleno mi combo:

Código:
<select name="estado">
<%
try {
        rs=clase.SelectEstado();
        ResultSetMetaData lrsmd_columns = rs.getMetaData(); 
        int li_ncols=lrsmd_columns.getColumnCount();

if(!rs.next()) {
             out.println("<option>----</option>"); }
else{
rs.beforeFirst(); 
}
     out.print("<option/>-Seleccione-");
while( rs.next()) { 
                  for(int i=0; i<li_ncols;i++) { 
                  out.print("<option>");
                  String ls_valor = rs.getString(i+1);
                  out.println(ls_valor+"</option>"); 
} 
}  } catch (Exception error) {
out.println(error); }
%>
</select>
De antemano gracias =)...

Última edición por luimel17; 20/08/2010 a las 15:29
  #2 (permalink)  
Antiguo 21/08/2010, 04:27
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Seleccionar un dato de un combo y guardar su id correspondiente

Para añadir datos a una BD necesitas usar JDBC, y como hay que crear las sentencias SQL no tienes ningún problema para decidir qué se guarda y qué no.

Para coger el dato de la combo tampoco tienes problema, ya que puedes añadir por cada opción una cadena que se muestre al usuario, y un valor distinto (value) que es el que se guarda cuando el usuario selecciona.

http://www.webestilo.com/html/cap7c.phtml
  #3 (permalink)  
Antiguo 23/08/2010, 08:58
 
Fecha de Ingreso: julio-2010
Ubicación: Morelia
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Seleccionar un dato de un combo y guardar su id correspondiente

Cita:
Iniciado por Xerelo Ver Mensaje
Para añadir datos a una BD necesitas usar JDBC, y como hay que crear las sentencias SQL no tienes ningún problema para decidir qué se guarda y qué no.

Para coger el dato de la combo tampoco tienes problema, ya que puedes añadir por cada opción una cadena que se muestre al usuario, y un valor distinto (value) que es el que se guarda cuando el usuario selecciona.

[url]http://www.webestilo.com/html/cap7c.phtml[/url]
Antes que nada gracias por responder, pero he aquí donde tengo la duda, y es que se que se debe poner en el value lo que necesito que se guarde en mi tabla de la base de datos, pero no se bien como debo ponerlo, ya que necesito que el valor sea dinamico, es decir, que dependiendo del estado que seleccione sea el valor que se guarde en el id, espero que me de a entender, he estado probando con esto:

Código HTML:
          while( rs.next()) {  
                    for(int i=0; i<li_ncols;i++) { 
                        out.println("<option value="+Integer.parseInt(rs.getString(1))+">");
                            String ls_valor =  rs.getString(i+1);
                            out.println(ls_valor+"</option>"); }  }
pero tengo un error, espero puedas ayudarme.... o pueda alguien mas que tenga la respuesta.... Gracias...
  #4 (permalink)  
Antiguo 23/08/2010, 10:00
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Seleccionar un dato de un combo y guardar su id correspondiente

¿Has puesto el select? Imagino que sí, pero por si acaso

<SELECT NAME="Colores">
<OPTION VALUE="r">Rojo</OPTION>
<OPTION VALUE="g">Verde</OPTION>
<OPTION VALUE="b">Azul</OPTION>
</SELECT>

Posiblemente el problema está en el recordset que recuperas, no en el html, pero por si acaso mete el value entre comillas simples.

Aparte de eso, ¿por qué conviertes el value a número? Si es un combo, sea número o caracter, HTTP lo interpreta como caracter.
  #5 (permalink)  
Antiguo 23/08/2010, 10:07
 
Fecha de Ingreso: julio-2010
Ubicación: Morelia
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Seleccionar un dato de un combo y guardar su id correspondiente

Bueno pues por fin lo pude solucionar, les dejo mi codigo por si a alguien le sirve de ayuda...

Código HTML:
 <%
        try {
        rs=usuario.SelectEstado();
        if(!rs.next()) {
        out.println("<option>--------</option>"); }
        else{
             rs.beforeFirst(); }//nos posicionamos en el primer elemento de la lista
              out.print("<option value="+0+"/>-Seleccione Estado-"); //Primera opcion que mostrara en pantalla
                while( rs.next()) { //mientras exista un dato imprimira sus datos en pantalla
                    String id = rs.getString(1); // Se almacena el id
                    String nombre = rs.getString(2);//Se almacena el nombre de los estados en la tabla
                    out.println("<option value="+id+">"); 
                    out.println(nombre+"</option>");}  //imprime cada uno de los estados
       } catch (Exception error) {
               out.println(error);   }
     %> 

Última edición por luimel17; 23/08/2010 a las 10:35

Etiquetas: combo, id_, jsp, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:57.