Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/09/2005, 14:21
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
De HTML sólo recibes los checkbox que se seleccionaron (marcaron, tickearon ...).

Para saber "los que no están seleccionados" deberías por otro médio enviar todos esos datos para así comparar los que sabes que fueron seleccionados con el total.

En principio .. podrías volver a realizar tu consulta SQL por los mismos parámetros que te llegó a arrojar todas las opciones del paso anterior .. pero en el script de proceso donde tomas los checkbox que fueron seleccionados. Con más seguridad podrías volcar todos esos valores a una sesión en ese punto y leerla donde terminas el proceso final.

Por ejemplo .. usando sesiones:
Código PHP:
<?
// inicio uso sesiones .. al principio de tu script ..
session_start();

seleccion_todos=array();
while(
$row=mysql_fetch_array($result)) 

     
// genero un array con todos los "ID's" que arroje la consulta.
     
$seleccion_todos[]=$row['NotaId'];
 
?>
<td><input type="checkbox" name="activa[]" value="<? echo $row['NotaId']; ?>">
<?  echo $row['NotaId'];?></td> 
<? 
echo "<br>";
}
// vuelco el array generado a una variable de sesión:
$_SESSION['todos']=$seleccion_todos;
?>
Y .. en el script de proceso final .. tendrás en $_SESSION['todos'] un array con todos los ID's posibles .. en tu $_POST['activa'] tienes el otro array con los ID's activos .. En tu bucle foreach() (pero aplicado a $_SESSION['todos']) podrías hacer algo tipo:

Código PHP:
session_start();
foreach (
$_SESSION['todos'] as $id) { 
   
$estado="inactivo";
   foreach (
$_POST['activa'] as $id_activo){
     if (
$id_activo==$id){
        
$estado="activo";
        break;
     }
   } 

   echo 
$id." --> ".$estado."<br>";


Más o menos sería así .. seguramente podrías ver otras funciones relacionadas con array's para la comparación de ambas para optimizar un poco el tema.

Un saludo,

PD: .. no me acuerdo si el foreach() deja el puntero del array al final .. si fuese así tendrás que usar reset($_POST['activa']); antes del echo $id ....