como le ago para modificar varios checkbox seleccionados

Iniciado por RedZer, 29 Octubre 2010, 00:52 AM

0 Miembros y 1 Visitante están viendo este tema.

RedZer

bueno miren tengo una consulta en la cual muestro los resultados con un while a ladito de cada resultado que se muestra le anexo un check box para eso yo tengo un campo en una tabla que se llama revisado y cada ves que se palomie un check box se pondra un 1 en se campo de mi tabla llamado revisado, eso lo ago yo con una modificacion ahora lo que quiero hacer es que cuando se deselccione un checkbox me modifique el valor en la tabla en el campo seleccionado que en ves de 1 me ponga un cero
mi codigo en donde genero la consulta sql para mostrar los registros y saber si ya tiene un valor asignado ese campo es el siguiente

conectar();
$result=mysql_query("select * FROM jqcalendar where Subject='$ficha-$codigo'");
desconectar();
while ($row=mysql_fetch_array($result))
{

echo"
<tr>
<td>$contador</td>

<td>$row[1]</td>
<td>$row[4]</td>
<td>$row[5]</td>

<td>$row[2]</td>";
if($row[7]==1){ 
echo"<td><input name=lista[] type=checkbox value=$row[0] checked=checked/></td>";
} else{
    echo"<td><input name=lista[] type=checkbox value=$row[0]  /></td>";

}



y el que me resibe y ase modificacion es este


<?php 
include("conexion.php"); 
session_start();
if(count($_POST['lista'])) { 
//incluir conexión a la bdd 

foreach ($_POST['lista'] as $v) {
    conectar();
mysql_query("UPDATE jqcalendar  SET asistencia='1' where Id='$v' ");
    desconectar();
     
         }     


}else {
         
//aqui es donde estoy intentando hacer que si se deselecciona un checkbox que //ya estaba seleccionado me cambie el valor a cero pero no me sale
conectar();
mysql_query("UPDATE jqcalendar  SET asistencia='0' where Id='$v' ");
    desconectar();
     

}

?>
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

#!drvy

#1
Resulta que si ningun checkbox esta selecionado no se envia ningun dato por lo tanto el $_POST['lista'] no se define y no contendra nada.
Lo unico que se me ocurre es que pongas un texbox hidden que se encargue de guardar las ids.
quedaria mas o menos asi

codigo para lista
Código (php) [Seleccionar]
<?php
conectar
(); 
$result=mysql_query("select * FROM jqcalendar where Subject='$ficha-$codigo'"); 
desconectar(); 
while (
$row=mysql_fetch_array($result)) 


echo

<tr> 
<td>
$contador</td> 

<td>
$row[1]</td> 
<td>
$row[4]</td> 
<td>
$row[5]</td> 

<td>
$row[2]</td>"
if(
$row[7]==1){
echo '<td><input name="lista[]" type="checkbox" value="'.$row[0].'" checked="checked"/>'
echo '<input type="hidden" name="listah[]" value="'.$row[0].' checked="cheked"/></td>';
} else{ 
echo"<td><input name=lista[] type=checkbox value=$row[0]  />";
echo '<input type="hidden" name="listah[]" value="'.$row[0].' checked="cheked"/></td>';

}  
?>


codigo que modifica
Código (php) [Seleccionar]
<?php  
include("conexion.php");  
session_start();
conectar();  
if(isset(
$_POST['lista'])) {  
//incluir conexión a la bdd  

foreach ($_POST['lista'] as $v) { mysql_query("UPDATE jqcalendar  SET asistencia='1' where Id='$v' ");}      
} else { 
//aqui es donde estoy intentando hacer que si se deselecciona un checkbox que
// ya estaba seleccionado me cambie el valor a cero pero no me sale 
foreach ($_POST['listah'] as $v) { mysql_query("UPDATE jqcalendar  SET asistencia='0' where Id='$v' ");} 
desconectar();
?>




Saludos