Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/03/2022, 04:36
iuliano
 
Fecha de Ingreso: agosto-2008
Mensajes: 56
Antigüedad: 15 años, 8 meses
Puntos: 1
Insertar array con solo lo seleccionado en el check

Buenas, tengo una form de varias líneas, con un check de pagos, y quiero que sólo se inserten los datos donde el check este marcado.

el form:
form action='administrar_libro.php' method='post'>
<p>Selecciona Fecha: <input type="text" id="datepicker" name='date' required></p>

<table border=1>
<head>
<td>Idalumno</td>
<td>Nombre</td>
<td>Apellidos</td>
<td>Pago</td>

</head>
<body>

<?php foreach ($libro as $libro4) {?>
<tr>
<td> <input type='text' name='id[]' value='<?php echo $libro4->getId()?>'></td>
<td> <input type='text' name='nombre[]' value='<?php echo $libro4->getNombre()?>'></td>
<td> <input type='text' name='apellidos[]' value='<?php echo $libro4->getApellidos()?>'></td>



<td><input type='checkbox' id = 'check' name='pago[]' value="pagado"></td>


</tr>
<?php }?>
</body>
<input type='hidden' name='pagos[]' value='pagos' >
</table><BR><br>



luego los recibo en mi php administrar_libros.php

}elseif(isset($_POST['pagos'])){
if ( !empty($_POST["pagos"]) && is_array($_POST["pagos"]) ) {

for($i=0, $t=count($_POST['nombre']); $i<$t; $i++){

$libro4->setNombre($_POST['nombre'][$i]);
$libro4->setApellidos($_POST['apellidos'][$i]);


$libro4->setPago($_POST['pago'][$i]);

$libro4->setId($_POST['id'][$i]);
$libro4->setFecha($_POST['date']);

$crud->pagos($libro4);


//llama a la función asistencia definida en el crud


echo '<div class="alert alert-success">Has registrado correctamente la asistencia del día.</div>';
echo "<a href='index.php'>Volver</a> ";
print "<pre>"; print_r($_REQUEST); print "</pre>\n";



public function pagos($libro4){
$db=Db::conectar();
// $db->beginTransaction();
// $asistencialibros=[];
$insert=$db->prepare('INSERT INTO pagos values (NULL,:nombre,:apellidos,:pago,:id, :date)');
// foreach ($libro as $libro2) {



$insert->bindvalue('nombre',$libro4->getNombre());
$insert->bindvalue('apellidos',$libro4->getApellidos());

$insert->bindvalue('pago',$libro4->getPago());
$insert->bindvalue('id',$libro4->getId());
$insert->bindvalue('date',$libro4->getFecha());
//

$insert->execute();


}
}


y los inserto:

public function pagos($libro4){
$db=Db::conectar();
// $db->beginTransaction();
// $asistencialibros=[];
$insert=$db->prepare('INSERT INTO pagos values (NULL,:nombre,:apellidos,:pago,:id, :date)');
// foreach ($libro as $libro2) {



$insert->bindvalue('nombre',$libro4->getNombre());
$insert->bindvalue('apellidos',$libro4->getApellidos());

$insert->bindvalue('pago',$libro4->getPago());
$insert->bindvalue('id',$libro4->getId());
$insert->bindvalue('date',$libro4->getFecha());
//

$insert->execute();