entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

consultar bd con checkbox PDO

Hola amigos estoy haciendo una consulta para extraer los datos de la bd y resulta que solo me selecciona el primer checkbox y como existen mas registros solo me selecciona el primer registro nada mas anexo código a ver cual sera mi fallo, gracias de ante mano. la idea es que halla una selección normal


<?php
$consulta = $DB_con->query("SELECT * FROM examen_laboratorio ORDER BY id;");
if($consulta->rowCount() > 0){

echo "<form class='col s12' action='examen_laboratorio.php' name='frmContacto' method='post'>";

echo "<div class='letra' align='justify' 
style='margin-left: 100px; overflow: auto; width: 800px; height: 300px;'>
<div 'center-align black-text thin' style='font-size: 22px;'><hr></div>
<div class='letra' align='justify' style='width: 370px;'>";

while ($linea = $consulta->fetch(PDO::FETCH_ASSOC)) {

echo"
<div class='letra' align='justify' style='width: 900px;'>
<p>
<input type='checkbox' name='chk_group[]' id='chk1' value='{$linea['id']}' > 
<label class='black-text' for='chk1'>{$linea['examen']}:  
{$linea['descripcion']}</label>
</p>
</div>";
}
echo "</div></div>";
}
//FIN CONSULTAR EXAMEN LABORATORIO
else
echo "<div class='col s12 card-panel yellow darken-2 center'>
<h5 class='black-text text-darken-2 center CONDENSED LIGHT5'>
¡ Advertencia: No se ha encontrado ningún registro ! <a href='acceso.php' class='teal-text darken-4'>volver</a>
</h5>
</div>";

echo "<br><br><br><br>

<div class='center-align'>

<button class='btn waves-effect blue-grey darken-4 btn-medium' data-position='bottom' type='submit' name='guardar'>Agregar Examen Laboratorio</button>

<button class='btn waves-effect blue-grey darken-4 btn-medium' data-position='bottom'
 type='reset' name='borrar'>Borrar</button>

<a href='javascript:history.back(1)' class='btn waves-effect blue-grey darken-4 btn-medium'>Volver</a>

</div>";

?>

<input type='hidden' name='fecha' value='<?php echo date("d/m/Y");?>'>

<?php
echo "<input type='hidden' name='cedula' value='$linea[cedula]'>
</form>";
?>
<br>
<hr>

el proceso

1 Respuesta

2votos

carlossevi Puntos63520

El problema lo tienes tienes en la parte de creación de los checkboxes:

<input type='checkbox' name='chk_group[]' id='chk1' value='{$linea['id']}' >

Todos los inputs que creas (uno por cada resgistro que devuelve la consulta) los estás creando con el mismo name e id, así que en realidad para el DOM de HTML son todos el mismo input duplicado.

Revisa esta documentación sobre el elemento input de HTML.

Yo te aconsejo que hagas una maqueta en HTML puro, sin PHP y generando el código manualmente en lugar de mediante el bucle. Una vez tengas claro qué HTML quieres que se genere y sepas como funciona, pasas a generarlo programáticamente con el bucle de PHP.

0voto

yoclens comentado

creo que no el error es del materializecss, porque le quite los css y demás componentes del frameword y me funciona perfectamente, causalidad de la vida le quite eso y ahora si funciona no se porque con ese frameword hay ese problema

0voto

carlossevi comentado

Yo más bien diría que Materialize falla por el problema de los id duplicados.

0voto

yoclens comentado

si. exactamenete,bueno gracias

0voto

Peter comentado

@yoclens si esta es la solución, por favor marca la respuesta como correcta.

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta