Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: RedZer en 29 Octubre 2010, 00:52 am



Título: como le ago para modificar varios checkbox seleccionados
Publicado por: RedZer en 29 Octubre 2010, 00:52 am
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();
     

}

?>


Título: Re: como le ago para modificar varios checkbox seleccionados
Publicado por: #!drvy en 10 Noviembre 2010, 01:08 am
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
  1. <?php
  2. conectar();
  3. $result=mysql_query("select * FROM jqcalendar where Subject='$ficha-$codigo'");
  4. desconectar();
  5. while ($row=mysql_fetch_array($result))
  6. {
  7.  
  8. echo"
  9. <tr>
  10. <td>$contador</td>
  11.  
  12. <td>$row[1]</td>
  13. <td>$row[4]</td>
  14. <td>$row[5]</td>
  15.  
  16. <td>$row[2]</td>";
  17. if($row[7]==1){
  18. echo '<td><input name="lista[]" type="checkbox" value="'.$row[0].'" checked="checked"/>';
  19. echo '<input type="hidden" name="listah[]" value="'.$row[0].' checked="cheked"/></td>';
  20. } else{
  21. echo"<td><input name=lista[] type=checkbox value=$row[0]  />";
  22. echo '<input type="hidden" name="listah[]" value="'.$row[0].' checked="cheked"/></td>';
  23. }
  24. }  
  25. ?>

codigo que modifica
Código
  1. <?php  
  2. include("conexion.php");  
  3. conectar();  
  4. if(isset($_POST['lista'])) {  
  5. //incluir conexión a la bdd  
  6.  
  7. foreach ($_POST['lista'] as $v) { mysql_query("UPDATE jqcalendar  SET asistencia='1' where Id='$v' ");}      
  8. } else {
  9. //aqui es donde estoy intentando hacer que si se deselecciona un checkbox que
  10. // ya estaba seleccionado me cambie el valor a cero pero no me sale
  11. foreach ($_POST['listah'] as $v) { mysql_query("UPDATE jqcalendar  SET asistencia='0' where Id='$v' ");}
  12. desconectar();
  13. ?>
  14.  


Saludos