Foros del Web » Programando para Internet » PHP »

PHP OO Checkbox no enviados|

Estas en el tema de Checkbox no enviados| en el foro de PHP en Foros del Web. HOLA ESTOY DESESPERADO JEJE NO LOGRO HACER UNA LISTA DE ASISTENCIA DE ALUMNOS YA QUE LA QUIERO MANEJAR CON CHECBOX PERO COMO ES NORMAL SOLO ...
  #1 (permalink)  
Antiguo 27/05/2012, 06:33
Avatar de carlosloaiza21  
Fecha de Ingreso: julio-2009
Mensajes: 175
Antigüedad: 14 años, 9 meses
Puntos: 0
Exclamación Checkbox no enviados|

HOLA ESTOY DESESPERADO JEJE NO LOGRO HACER UNA LISTA DE ASISTENCIA DE ALUMNOS YA QUE LA QUIERO MANEJAR CON CHECBOX PERO COMO ES NORMAL SOLO ME ENVIA A LA SIGUIENTE PAGINA LOS CHECBOX SELECCIONADOS PERO YO QUIERO QUE CUANDO NO LO SELECCIONEN ME APARESCA ALGO ASI:

ALUMNO 1 "PRESENTE"
ALUMNO 2 "FALTA"

TENGO EL SIGUIENTE CODIGO:

Código HTML:
<form action='Lista.php' method='Post'>

Alumno1 <input type='checkbox' value='Alimno1' name='Asisten[]'><br>
Alumno1 <input type='checkbox' value='Alimno1' name='Asisten[]'><br>
Alumno1 <input type='checkbox' value='Alimno1' name='Asisten[]'><br>
Alumno1 <input type='checkbox' value='Alimno1' name='Asisten[]'><br>
Alumno1 <input type='checkbox' value='Alimno1' name='Asisten[]'><br>
<input type='submit'>

</form> 
Lista.php:

Código PHP:
<?php

foreach($_POST[''Asisten] as $Lista)
{
echo 
$Lista."<br>";
}

?>
Ya se que los checkbox solo se envian cuando se seleccionan pero por favor ayudenme ya no se que hacer ya intente con arrays pero no logro hacerlo por favor ayudaaaaaaa

__________________
La vida de un hombre es mas interesante si ha fracasado, por que eso quiere decir que ha intentado superarse
  #2 (permalink)  
Antiguo 27/05/2012, 08:07
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 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.
  #3 (permalink)  
Antiguo 27/05/2012, 08:49
Avatar de carlosloaiza21  
Fecha de Ingreso: julio-2009
Mensajes: 175
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Checkbox no enviados|

Gracias jeje lo intentare como dices te lo agradesco muchoooo
__________________
La vida de un hombre es mas interesante si ha fracasado, por que eso quiere decir que ha intentado superarse

Etiquetas: checkbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.