Consulta para mostrar checkbox marcados em PHP

  • Autor Autor iniciopublic
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
iniciopublic

iniciopublic

Préstamo impago
1
Ómicron
Verificación en dos pasos activada
Suscripción a IA
Hola a todos tengo un problema , quisiera hacer una consulta que me muestre los checkbox marcados , osea que me muestre todos los checkbox y algunos estén marcados según la consulta.

Esto es lo que tengo
Código PHP:
PHP:
 $categoria = "20"; 
$sqlcategoria="Select * FROM categoria_libro where id='$categoria'" ; 
                             $resultcategoria = pg_query ($sqlcategoria); 
                              while ($rowcategoria = pg_fetch_assoc($resultcategoria)){  ?>         
       
                            <input type="checkbox" name="categoria[]" id ="categoria" value="<?php echo $row['id'];?>" checked> <?php echo $rowcategoria['categoria']; ?>     
                                 
<?php }
Aqui me muestra un solo checkbox pero sin estar marcado


Aquí esta otro que me muestra todas las categorias
PHP:
Código PHP:
<?php $categoria="Select * FROM categoria_libro " ;  
$resultado = pg_query ($categoria);     while ($resultado1 = pg_fetch_assoc($resultado)){    ?> 
    <input type="checkbox" name="categoria[]" id ="categoria" value="<?php echo $row['id'];?>"> 

<?php }    ?>
Entonces como podria unir ambas sentencias para que me muestre todas las categorias en checkbox y a la vez me marque solo la que están seleccionadas según la otra consulta


le agradezco su pronta respuesta
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
En si que deseas realizar? La primera consulta te hace un checkbox checked por que dentro del while le estas diciendo que lo cree con el atributo checked.

la cuestión es, dentro del while debería ir una condicional, cuando se cumpla algo dentro de la consulta, se añada el checked, y cuando no, pues no....
 
Como ya te mencionaron, necesitas agregar una condición en tu while para que cuando se cumpla imprima "checked".

PHP:
<?php  
//Array con id's de categorías seleccionadas  
$array = array(20, 4);   

$query = "SELECT * FROM categoria_libro";     
$resultado = pg_query($query);  

while($fila = pg_fetch_assoc($resultado)){  
      
    //Revisando si id está en array  
    if(array_search($fila["id"], $array) !== FALSE){          
        $seleccion = "checked";  
    } else {  
        $seleccion = "";  
    }

    echo '<input type="checkbox" name="categoria[]" id="categoria" value="' . "{$fila['id']}\" $seleccion>";  

}
?>
Saludos. 🙂
 
Como ya te mencionaron, necesitas agregar una condición en tu while para que cuando se cumpla imprima "checked".

PHP:
<?php  
//Array con id's de categorías seleccionadas  
$array = array(20, 4);   

$query = "SELECT * FROM categoria_libro";     
$resultado = pg_query($query);  

while($fila = pg_fetch_assoc($resultado)){  
      
    //Revisando si id está en array  
    if(array_search($fila["id"], $array) !== FALSE){          
        $seleccion = "checked";  
    } else {  
        $seleccion = "";  
    }

    echo '<input type="checkbox" name="categoria[]" id="categoria" value="' . "{$fila['id']}\" $seleccion>";  

}
?>
Saludos. 🙂

Estaría mejor así:

PHP:
$seleccion = array_search($fila["id"], $array) !== FALSE ? 'checked': '';

🙂
 
Voltar
Topo