Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/05/2012, 08:07
Avatar de gjx2
gjx2
 
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 9 meses
Puntos: 139
Respuesta: Checkbox no enviados|

Es facil por que a tu archivo procesador "lista.php" solo se envian los checbox seleccionados.
Seria simple saber lo que estan presente pero difícil saber los ausentes, en ese caso se podría resolver creando un arreglo con todos los alumnos y luego buscar la coincidencia en ambos arreglos.


Ej 1.

Código PHP:
Ver original
  1. if (isset ($_POST['Asisten'])){
  2.  
  3. $estudiantes = array("Juan","Jose","Perez","Miguel","Pedro");
  4.  
  5. $Estudiantes_Ausentes = array_diff ($estudiantes,  $_POST['Asisten']);
  6.  
  7. var_dump ($Estudiantes_Ausentes);
  8. }
Ej 2.
Código PHP:
Ver original
  1. if (isset ($_POST['Asisten'])){
  2.  
  3. $estudiantes = array("Juan","Jose","Perez","Miguel","Pedro");
  4.  
  5. foreach ($estudiantes as $alumnos){
  6.  
  7.         if ( in_array ($alumnos, $_POST['Asisten'])){
  8.  
  9.             echo "Estudiante ".$alumnos." Presente <br />";
  10.  
  11.         } else {
  12.  
  13.             echo "Estudiante ".$alumnos." Ausente <br />";
  14.         }
  15.        
  16.     }
  17. }

Es lo que se me ocurre rapidamente ahora, aunque tambien podria resolverlo con javascript pero seria otra historia.

Si es para trabajarlo en una base de datos pues es mucho mas facil por que todos los alumnos por default tendria el valor ausente
Y solo tendrias que hacer un update " Presente " a los checkbox seleccionados.

Código PHP:
Ver original
  1. if (isset ($_POST['Asisten'])){
  2. foreach ($_POST['Asisten'] as $Lista) {
  3. echo "Update .... where Alumno = ".$Lista."...";
  4. }
  5. }
Quizás esta no sea la forma mas optima quizás alguien aporte algo mejor.

Saludos.