Foros del Web » Programando para Internet » Javascript »

selects dentro de tabla

Estas en el tema de selects dentro de tabla en el foro de Javascript en Foros del Web. necesito una ayuda amigos...tengo una tabla con varios select (realmente es el mismo repetido varias veces) esto en JSP : extrae de una bd y ...
  #1 (permalink)  
Antiguo 24/06/2016, 07:19
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
selects dentro de tabla

necesito una ayuda amigos...tengo una tabla con varios select (realmente es el mismo repetido varias veces)

esto en JSP : extrae de una bd y presenta la lista de opciones para que el usuario escoja (pero crea una tabla de varios registros con las mismas listas en todos los registros)

pego un extracto de jsp
Código Java:
Ver original
  1. <table ID="dataRangos" class="estiloRangos">
  2.             <tr>
  3.                 <th>ORDEN</th>
  4.                 <th>OPER.</th>
  5.                 <th>Agrup.</th>
  6.                 <th>CAMPO</th>
  7.                 <th>Agrup.</th>
  8.             </tr>
  9.             <%
  10.             for (int i=0;i<listaRangos.size();i++){
  11.                 %>
  12.                <tr>
  13.                <td><input type="text" style=" text-align: right" size="5" id="txtorden"  value="<%=listaRangos.get(i).getiCampo1()%>" ></td>
  14.                <td>
  15.                <select id='slcOper'>
  16.                    <option value=0></option>
  17.                   <%
  18.                   String opx="";
  19.                   String opy="";
  20.                   for (int j=0;j<Operadores.size();j++){
  21.                       opx=Operadores.get(j).getsCampo1();
  22.                       opy=listaRangos.get(i).getsCampo3();
  23.                       if (opx.equals(opy)){
  24.                          %>
  25.                          <option selected="selected" value=<%=Operadores.get(j).getsCampo1()%>><%=Operadores.get(j).getsCampo1()%></option>
  26.                          <%
  27.                       }else{    
  28.                          %>
  29.                          <option value=<%=Operadores.get(j).getsCampo1()%>><%=Operadores.get(j).getsCampo1()%></option>
  30.                          <%
  31.                       }    
  32.                   }
  33.                   %>    
  34.                </select>
  35.                </td>
  36.                <%
  37.                if (listaRangos.get(i).getsCampo4()==null){
  38.                    Agrup1="";
  39.                }    
  40.                if (listaRangos.get(i).getsCampo6()==null){
  41.                    Agrup2="";
  42.                }    
  43.                %>  
  44.                <td><input type="text" style=" text-align: right" size="5" id="txtagrup1" value=<%=Agrup1%> ></td>
  45.                <td>
  46.                <select id='slcFuente'>
  47.                    <option value=0></option>
  48.                   <%
  49.                    String fx="";
  50.                    String fy="";
  51.                    for (int k=0; k<listaI.size();k++){
  52.                        fx=listaI.get(k).getsCampo1(); //+"-"+listaI.get(k).getsCampo2();
  53.                        fy=listaRangos.get(i).getsCampo5();
  54.                        if (fx.equals(fy)){
  55.                           %>
  56.                           <option selected="selected" value="<%=listaI.get(k).getsCampo1()%>"><%=listaI.get(k).getsCampo1()%>-<%=listaI.get(k).getsCampo2()%></option>
  57.                           <%
  58.                        }else{
  59.                           %>
  60.                           <option value="<%=listaI.get(k).getsCampo1()%>"><%=listaI.get(k).getsCampo1()%>-<%=listaI.get(k).getsCampo2()%></option>
  61.                           <%
  62.                        }    
  63.                    }
  64.                   %>    
  65.                </select>
  66.                </td>
  67.                
  68.                <td><input type="text" style=" text-align: right" size="5" id="txtagrup2" value=<%=Agrup1%> ></td>
  69.  
  70.                </tr>
  71.             <%
  72.             }
  73.             %>
  74.         </table>

en JAVASCRIPT estoy tratando de capturar lo que selecciono el usuario asi :

Código Javascript:
Ver original
  1. var tableReg = document.getElementById("dataRangos");
  2.           for (var i = 1; i < tableReg.rows.length; i++){
  3.                  var lista = tableReg.rows[i].getElementById("slcOper");
  4.                  var indiceSeleccionado = lista.selectedIndex;
  5.                  var opcionSeleccionada = lista.options[indiceSeleccionado];
  6.                  var idOper = opcionSeleccionada.value;

Pero no me reconoce la lista "slcOper"...claro hay una lista por registro de la tabla, alguna idea?
  #2 (permalink)  
Antiguo 27/06/2016, 13:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: selects dentro de tabla

no deberias repetir los ID de cada select, concatenales un incrementador:

<select id='slcFuente<%=i%>'>
  #3 (permalink)  
Antiguo 28/06/2016, 10:53
 
Fecha de Ingreso: noviembre-2013
Mensajes: 147
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: selects dentro de tabla

sustentio, pero como las capturo al otro lado, es decir ...

en jsp
Código Java:
Ver original
  1. <select id='slcOper'<%=i%> name='slcOper' onchange="fncAgregar();">
  2.                    <option value=0></option>
  3.                   <%
  4.                   String opx="";
  5.                   String opy="";
  6.                   for (int j=0;j<Operadores.size();j++){
  7.                       opx=Operadores.get(j).getsCampo1();
  8.                       opy=listaRangos.get(i).getsCampo3();
  9.                       if (opx.equals(opy)){
  10.                          %>
  11.                          <option selected="selected" value=<%=Operadores.get(j).getsCampo1()%>><%=Operadores.get(j).getsCampo1()%></option>
  12.                          <%
  13.                       }else{    
  14.                          %>
  15.                          <option value=<%=Operadores.get(j).getsCampo1()%>><%=Operadores.get(j).getsCampo1()%></option>
  16.                          <%
  17.                       }    
  18.                   }

y en javascript trato de hacerlo asi :
Código Javascript:
Ver original
  1. var tableReg = document.getElementById("dataRangos");
  2.           for (var i = 1; i < tableReg.rows.length; i++){
  3.                  //la siguiente linea no funciona
  4.                  var lista = tableReg.rows.getElementByid("slcOper"+i);
  5.                  var indiceSeleccionado = lista.selectedIndex;
  6.                  var opcionSeleccionada = lista.options[indiceSeleccionado];
  7.                  var idOper = opcionSeleccionada.value;

Pero se traba en la linea var lista = tableReg.rows.getElementByid("slcOper"+i);
que tengo mal?
  #4 (permalink)  
Antiguo 29/06/2016, 10:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: selects dentro de tabla

estas concatenando el incrementador fuera del atributo, encierralo dentro de las comillas:

Código Java:
Ver original
  1. <select id='slcOper<%=i%>' name='slcOper' onchange="fncAgregar();">
  2.                    <option value=0></option>
  3.                   <%
  4.                   String opx="";
  5.                   String opy="";
  6.                   for (int j=0;j<Operadores.size();j++){
  7.                       opx=Operadores.get(j).getsCampo1();
  8.                       opy=listaRangos.get(i).getsCampo3();
  9.                       if (opx.equals(opy)){
  10.                          %>
  11.                          <option selected="selected" value=<%=Operadores.get(j).getsCampo1()%>><%=Operadores.get(j).getsCampo1()%></option>
  12.                          <%
  13.                       }else{    
  14.                          %>
  15.                          <option value=<%=Operadores.get(j).getsCampo1()%>><%=Operadores.get(j).getsCampo1()%></option>
  16.                          <%
  17.                       }    
  18.                   }

Etiquetas: input, js, selects, tabla
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 13:29.