Foros del Web » Programando para Internet » PHP »

Como recojo conjunto de checks para insertar en otra pagina

Estas en el tema de Como recojo conjunto de checks para insertar en otra pagina en el foro de PHP en Foros del Web. Hola, tengo un form donde tengo un check por cada alumno, uno puede seleccionar uno o varios checks, luego previa consulta en otra pagina poder ...
  #1 (permalink)  
Antiguo 21/07/2003, 15:07
 
Fecha de Ingreso: julio-2003
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
Como recojo conjunto de checks para insertar en otra pagina

Hola, tengo un form donde tengo un check por cada alumno, uno puede seleccionar uno o varios checks, luego previa consulta en otra pagina poder insertar la seleccion.

De antemano Gracias..
  #2 (permalink)  
Antiguo 21/07/2003, 15:54
Avatar de Darksoft  
Fecha de Ingreso: mayo-2002
Mensajes: 106
Antigüedad: 21 años, 11 meses
Puntos: 0
Código PHP:
<input  name='check[]' type='checkbox' value='" .$_Alumnos['Id_Alumno']  ."' checked
con ese codigo retocandolo a tu gusto, te llegara a la pagina donde se haga el action un Array llamado $_POST['check'], con tantas posiciones como alumnos esten checkados y en cada posicion el id del alumno checkado, luego solo tienes ke hacer un implode si kieres usar directamente los id_alumno en una query.


saludines

Última edición por Darksoft; 21/07/2003 a las 16:09
  #3 (permalink)  
Antiguo 21/07/2003, 16:05
 
Fecha de Ingreso: julio-2003
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
Lo tengo asi $alu= implode(",", $_POST[alu]); ,pero al hacer el insert toma los valores (id,id,..., otro1, otro2), No se como tomarlos separados en la otra pagina.
Te agradeceria si me pudieras ayudar.

De todas maneras Gracias.
  #4 (permalink)  
Antiguo 21/07/2003, 16:08
Avatar de Darksoft  
Fecha de Ingreso: mayo-2002
Mensajes: 106
Antigüedad: 21 años, 11 meses
Puntos: 0
por ejemplo asi

Código PHP:
$deleteSQL "DELETE FROM Alumnos WHERE Id_Alumno IN(".implode(', '$_POST['check']).")"

o si te es mas facil creando un bucle
Código PHP:
for ($i=0;$i<count($_POST['check']);$i++){
$updateSQL "UPDATE (Nombre) FROM  Alumnos WHERE Id_Alumno=".$_POST['check'][$i]." VALUES ('PEPE')";
mysql_quey ($updateSQL) or die ( "esto no va");


Última edición por Darksoft; 21/07/2003 a las 16:16
  #5 (permalink)  
Antiguo 21/07/2003, 16:11
Avatar de cofyman  
Fecha de Ingreso: noviembre-2002
Ubicación: Murcia - Spain
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 0
Prueba así:

Código PHP:
$alu implode(', '$_POST['alu']); 
Creo que con eso te deberia funcionar...
  #6 (permalink)  
Antiguo 21/07/2003, 16:18
 
Fecha de Ingreso: julio-2003
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
me entrega :
Error al acceder a la BD. (311)INSERT INTO TIENE3 (RUT_ALUMNO, ID_RAMO, ID_CURSO) VALUES (18765560, 19646092, '3890', '439'), en donde solo necesitaria un rut.


Gracias OTra Vez.
  #7 (permalink)  
Antiguo 21/07/2003, 16:20
Avatar de Darksoft  
Fecha de Ingreso: mayo-2002
Mensajes: 106
Antigüedad: 21 años, 11 meses
Puntos: 0
a ver si haces el implode es para usarlo en una sentencia del tipo "IN (conjunto de valores)", normalmente en un DELETE, si lo que quieres es updatear la tabla, mejor usa el bucle FOR
  #8 (permalink)  
Antiguo 21/07/2003, 16:23
 
Fecha de Ingreso: julio-2003
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
Si, lo que quiero es Insertar.

Gracias..
  #9 (permalink)  
Antiguo 21/07/2003, 16:25
Avatar de Darksoft  
Fecha de Ingreso: mayo-2002
Mensajes: 106
Antigüedad: 21 años, 11 meses
Puntos: 0
pues tambien usa el bucle for que te he explicado mas arriba, pero en lugar de un UPDATE usa un INSERT
  #10 (permalink)  
Antiguo 21/07/2003, 16:27
 
Fecha de Ingreso: julio-2003
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
Lo probare y les cuento.

Gracias a todos..
  #11 (permalink)  
Antiguo 22/07/2003, 10:58
 
Fecha de Ingreso: julio-2003
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
Me salio impecable con el bucle.

Muchisimas Gracias.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:50.