Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Leer varios hidden con el mismo id y distintos value?

Estas en el tema de Leer varios hidden con el mismo id y distintos value? en el foro de PHP en Foros del Web. Muy buenas. Estoy realizando un pequeño proyecto y me a surgido un problema, muchos de hecho pero ya solucione la mayoría, el cual me esta ...
  #1 (permalink)  
Antiguo 24/10/2012, 08:15
lac
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 27
Antigüedad: 11 años, 5 meses
Puntos: 0
Pregunta Leer varios hidden con el mismo id y distintos value?

Muy buenas.
Estoy realizando un pequeño proyecto y me a surgido un problema, muchos de hecho pero ya solucione la mayoría, el cual me esta causando un gran retraso.

Tengo una vista que se genera de manera automática de la siguiente manera:
Código:
  <form name="fDelMod" method="post" action='index.php' id="fDelMod" >
                           <?php
                                $dbf = new db_functions($cfg_server, $cfg_username, $cfg_password, $cfg_database);
                                $select="select * from usuarios";
                                $numReg=$dbf->getConsulta($select);
                                $cmostrar=10;
                                $pagina=$_GET["num"];
                                $pagar=ceil($numReg/$cmostrar);
                                if(is_numeric($pagina)) {
                                    $inicio=(($pagina-1)*$cmostrar);
                                }
                                else {
                                    $inicio=0;
                                }

                                $select="select * from usuarios ORDER BY id_usuario LIMIT ".$inicio.",".$cmostrar;
                                $resulta=$dbf->getConsulta($select);
                                while ($row=mysql_fetch_array($resulta)){  
                                   echo "<tr class='trform'>";
                                    echo "<td class='tdform'>".$row[0]."</td>";
                                    echo "<td class='tdform'>".$row[1]."</td>";
                                    echo "<td class='tdform'>".$row[2]."</td>";
                                   echo "<td class='tdform'>".$row[3]."</td>";
                                    echo "<td class='tdform'>".$row[4]."</td>";
                                    echo "<td class='tdform'>".$row[5]."</td>";
                                     echo "<td class='tdform'>".$row[6]."</td>";
                                     echo "<td class='tdform'>
                                     <a  href='javascript:enviar_formulario()'>
                                        <img src='../themes/default/images/lápiz.png' alt='mg_modUsuario' width='20'/>
                                     </a>
                                     <input type='hidden' id='hum' name='hum' value='".$row[0]."'/>
                                     </td>";
                                     echo"<td class='tdform'>
                                     <a onclick='return confirmDel();' href='index.php?del=".$row[0]."'>
                                        <img src='../themes/default/images/eliminar.png' alt='mg_AddUser' width='20'/>
                                     </a></td>";
                                   echo "</tr>";
                                }
                                
                            ?>
                        </table>
                        <div class="paginador">
                                <?php
                                    for ($i=1; $i <= $pagar; $i++) { 
                                        echo "<a class='pga'href='index.php?num=".$i."'>".$i."</a>";
                                    }
                                ?>
                        </form>
                        </div>
                    </div>
                    <div id="tab2" class="tab_content">
                        <form name="fMenu" method="post">
                            <select autofocus required name="idusuario">
                                <?php

                                    $dbf = new db_functions($cfg_server, $cfg_username, $cfg_password, $cfg_database);
                                    $select="select * from usuarios";
                                    $result=$dbf->getConsulta($select);
                                    while ($row=mysql_fetch_array($result)){
                                         echo"<option value='".$row[0]."'>".$row[1]."</option>";  
                                    }
                                    $dbf->cerrarConexion();
                                ?>
Como podrán notar hay una etiqueta input tipo hidden con el id="hum" y name="hum" que se genera de manera automática al lado da cada linck "modificar" el problema es que luego tengo que leer el value de este hidden y solo puedo leer el vaule del ultimo hidden, ahora la pregunta es: ¿Como puedo hacer para pasar el id_usuario que se a seleccionado y no el ultimo??

Muchas gracias por su ayuda.
  #2 (permalink)  
Antiguo 24/10/2012, 08:37
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Leer varios hidden con el mismo id y distintos value?

Para que el navegador envie todos los valores es necesario indicarle que el input en cuestión debe ser tratado como array, y esto se logra agregando corchetes al final del NAME en el input (name="hum[]"), en PHP obtendrás un array con todos los valores
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 25/10/2012, 20:45
lac
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 27
Antigüedad: 11 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Leer varios hidden con el mismo id y distintos value?

Muchas gracias Nemutagk pero de igual forma no me serviría por que estaría en iguales condiciones para saber cuantos hidden se generaron y cual es al que le corresponde la lectura.

Ya solucione el problema(con javascript y no con php) pero lo tuve que abordar de distinta forma.
elimine los hidden y termine haciendo lo siguiente.

Primero modifique la función enviar_formulario()
Código:
 <script> 
            function enviar_formulario(id)
            { 
                document.cookie="id1="+id;
               document.fDelMod.submit();
               
            } 
        </script>
luego solo coloque el enlace de la siguiente manera:
Código HTML:
<a  href='javascript:enviar_formulario(".$row[0].")'>
                                        <img src='../themes/default/images/lápiz.png' alt='mg_modUsuario' width='20'/>
</a> 
Luego en el código php solo leo el valor de la cookie para saber que registro fue presionado y listo.
Muchos mas fácil de lo que me imaginaba...
  #4 (permalink)  
Antiguo 25/10/2012, 21:01
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Leer varios hidden con el mismo id y distintos value?

Para comenzar todo tu script esta mal en la logica, si solo vas a borrar 1 solo registro no tiene caso en absoluto el usar un form y mucho menos meter todos los datos en un solo form, aparte, tu "solución" no es mas que un parche mal hecho, si el usuario tiene desactivado javascript no va ha hacer nada, lo ideal es pasar el ID via GET en un link, no se para hacer todo ese embrollo si ya existe algo nativo para lo que pretendes hacer....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 03/11/2012, 21:51
lac
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 27
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Leer varios hidden con el mismo id y distintos value?

Gracias por responder y si, tiene toda la razón si solo voy a borrar un registro para que hacer todo esto.. pues es por que no estoy borrando nada, lo que he puesto que he hecho es para modificar un registro.

Por que es que tiene que enviar un parámetro primero a un scrip en lugar de solo enviar por get y punto, pues se debe a que tengo el formulario para modificar los datos oculto utilizando css y javascript y se activa antes de enviar los datos al servidor entonces la única menara que se me ocurría era enviar los datos primero a javascript y luego tomarla de aquí para enviarla al formulario de modificacion.

Ahora bien, ciertamente cuando publique el código de la solución no había depurado nada por tanto tenia muchas cosas extras que no deberían de estar, pero bien...

Muchas gracias y si tienes otra solución, creo que no solo yo si no que muchos, te agradeceríamos que la publiques para que todos aprendamos un poco de tu conocimientos.

Etiquetas: hidden, pasarvalor
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 14:34.