Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] cómo enviar un array sabiendo si el checkbox esta marcado?

Estas en el tema de cómo enviar un array sabiendo si el checkbox esta marcado? en el foro de PHP en Foros del Web. Hola buenas, estoy desarrollando una aplicación en la que obtengo mediante SQL los alumnos de una clase y en la tabla muesro sus datos, incluyendo ...
  #1 (permalink)  
Antiguo 03/12/2013, 03:45
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
cómo enviar un array sabiendo si el checkbox esta marcado?

Hola buenas, estoy desarrollando una aplicación en la que obtengo mediante SQL los alumnos de una clase y en la tabla muesro sus datos, incluyendo si han asistido o no ha clase. Necesito que el profesor manualmente pueda añadir quitar una falta pero no se como enviar dichos datos para hacerlo:
mi consulta es la siguiente: (Utilizo PDO)

Código PHP:
$consulta "SELECT nombre, apellido1, apellido2, matricula FROM $dbDb.alumnos WHERE xunidad='$xunidad' ORDER BY apellido1 ASC";

$result $db->query($consulta);

foreach (
$result3 as $valor3) {
        
$id=$valor3[id];
    
$nombre=$valor3[nombre];
        
$apellido1=$valor3[apellido1];
        
$apellido2=$valor3[apellido2];

//creo la consulta para ver quien ha asistido y quien no
$consulta2 "SELECT COUNT(*) FROM $dbDb.asistencia WHERE  matricula='$matricula' AND fechaasistencia='$fecha'";
$result2 $db->prepare($consulta2);
$result2->execute();

if(
$result2->fetchColumn()>=1){
    
$checkbox ='<input type='checkbox' name='asistencia' value='$id' checked>";
}
else{
    $checkbox ='
<input type='checkbox' name='asistencia' value='$id'>";
}

El código está copiado y pegado asiqe es posible que me falte algo de info (como el submit). pero la pregunta es cómo puedo recoger que alumno ha faltado (es decir, tiene el checkbox sin marcar) y cual lo tiene marcado?

Muchas gracias y si me dejo algo importante atrás decidmelo que o coriijo
  #2 (permalink)  
Antiguo 03/12/2013, 06:21
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: cómo enviar un array sabiendo si el checkbox esta marcado?

Tienes un pequeño problema con las comillas
http://www.forosdelweb.com/f18/como-...1/#post2414268
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 03/12/2013, 08:40
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: cómo enviar un array sabiendo si el checkbox esta marcado?

Holas, kasmo.

Después que resuelvas lo de las comillas que te señaló xSkArx, prueba esto: es una de las formas en que lo he resuelto yo en casos similares:

1. Debes tener dos arrays de input: uno de hidden y el otro con los checkboxes.
2. En ambos array debes asignar al value el identificador del estudiante.
3. Por php, siempre recibirás el array completo de los input hidden, con lo que ya tienes la lista de tus alumnos al completo.
4. Del segundo array, el de los checkbox, recibirás sólo los que están checkados: si tu sistema dice que el marcado es igual a "presente", y el no marcado es igual a "ausente", entonces sólo tienes que unir el elemento del primer array con el elemento del segundo, y marcarlo como corresponda. Por ejemplo:

Código PHP:
$estudiantes $_POST["estudiante"];
$asistencia $_POST["asistencia"];

foreach (
$estudiantes as $est)
{
 if (
in_array($est$asistencia ))
 {
  
// el checkbox de este estudiante ha sido marcado
 
}

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #4 (permalink)  
Antiguo 04/12/2013, 02:16
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: cómo enviar un array sabiendo si el checkbox esta marcado?

Buenos día y muchas gracias, ante todo pido perdón por lo de las comillas pues el código que escribí fue copiando el código de mi PHP mas HTML que fui añadiendo, eso está resuelto.

Lo he resuelto de una manera parecida a la que me has comentado, solo pasando un array, en de los checkbox marcados la diferencia está en el otro pues no he pasado. Mi manera de resolverlo ha sido una vez enviado a la nueva página, realizar otra consulta y en el bucle para recorrer todos los resultados, he comprobado si dicho alumno se encontraba en los alumnos maracados con checkbox, si estaba añadía el registro a la base de datos, y si no estaba no lo añado (o lo borro si existía con anterioridad). La verdad es que es mas complejo y lioso de lo que me has comentado, pero bueno ha funcionado jajaja de todas formas probaré tu método pues parece mucho mas sencillo.

Muchas gracias de nuevo
  #5 (permalink)  
Antiguo 04/12/2013, 15:20
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: cómo enviar un array sabiendo si el checkbox esta marcado?

Pues es lo mismo, pero repartido de otra forma :)
En mi propuesta obtienes la lista al principio, y luego sólo la revisas.
En tu propuesta, obtienes la lista al principio, y luego la vuelves a obtener para poder hacer la comparación.
Tal vez haya más carga de trabajo para tu servidor con tu propuesta, pero eso lo evalúas tú.

Nos cuentas cómo te va al final! :D

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*

Etiquetas: checkbox, fecha, select, sql, tabla
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 02:32.