tomar datos de un checkbox

Rodrigo Ruiz Fuentes raruiz en alumnos.duoc.cl
Jue Ene 12 08:32:10 CLST 2006


El mié, 11-01-2006 a las 20:20 -0300, Luis Vega escribió:
> hola amigos, denuevo les pido ayuda.

hola

>  
> he creado la tabla alumnocurso, con id como pk, y idcur de la tabla
> curso como fk y ademas idalum, de la tabla alumno como fd.
> por ejemplo:
>  
> el alumno juan (id=1) tiene 2 cursos (calculo(id=1) y algebra(id=2)).
> en la tabla alumno curso, el registro seria:
>  
> ----
> id =  1
> idcur = 1
> idalum = 1
> ----
> id = 2
> idcur = 2
> idalum =1
> ----

yo prefiero mantener solo la combinación de ambas claves como una clave
primaria, o sea, la pk de esta tabla sería idalum+idcur, de esa forma
evitamos que se repitan registros. Ahora, si la idea es mantener un
histórico, o el alumno haya repetido el curso y debiese ser inscrito
nuevamente, se le agrega a esa clave una fecha IMHO.

>  
> en el momento que ingreso un alumno a la tabla muestro un formulario
> con 2 partes
> la primera son los datos del alumno (datos tipicos).
>  
> la otra parte muestra los cursos disponibles para el alumno.
> para seleccionar los cursos, consulto la tabla cursos e imprio por
> pantalla todos los cursos, pero a traves de un check box, asociado con
> el id del curso y ademas el nombre del curso.
>  
> pero el problema que tengo es cuando ingreso los datos a la tabla
> alumnocurso, ya que no se como hacer para que , por ejemplo si el
> alumno tendra mas de un curso, inserte en la tabla alumnocurso tantas
> veces el id del alumno con el curso asociado.

Los checkbox deben tener el mismo nombre, por ejemplo:

<input type="checkbox" name="curso[]" value="idcurso1" />Curso 1
<input type="checkbox" name="curso[]" value="idcurso2" />Curso 2

y asi...
luego, cuando recibas los datos, debes hacer lo siguiente, o al menos es
lo que hago yo, revisa el ejemplo:

<?php
if ($_REQUEST['dale']) {
	foreach($_POST['valores'] as $id)
		echo "ID: ".$id.""\n";
} else {
	echo "<form name=\"form\" action=\"\" method=\"post\">\n";
	for ($i=1;$i<=10;$i++)
		echo "<input type=\"checkbox\" name=\"valores[]\" value=
\"".$i."\" />Valor ".$i."\n";
	echo "<input type=\"submit\" name=\"dale\" value=\"dale\" />\n";
	echo "</form>\n";
}
?>

De esa forma obtienes todos los códigos, o mas bien, todos los 'values'
de cada checkbox checked.
Espero se entienda y te sirva.
> 
>  
> asi como lo tengo ahora, solo me ingresa un solo valor, aunque tenga
> todos los checkboxs en on.
>  
> bueno, espero que se halla entendido. gracias nuevamente por la ayuda.
> saludos
> 
> -- 
> Luis Vega M.
> Linux Registered User #356394
> GnuPG v1.4.1-1 (Debian GNU/Linux)
> PG-ID: C0778DD2 <fodsite AT gmail DOT com>
> http://fodsite.webcindario.com 
-- 
Rodrigo Ruiz Fuentes <raruiz en alumnos.duoc.cl>



Más información sobre la lista de distribución PHP