Foros del Web » Programando para Internet » PHP »

Problema con formulario y PHP - Además, una consulta teórica -

Estas en el tema de Problema con formulario y PHP - Además, una consulta teórica - en el foro de PHP en Foros del Web. Hola a todos: Para empezar, quisiera haceros una pregunta algo teórica. He estado buscando en los manuales y, o soy muy zote, o no está ...
  #1 (permalink)  
Antiguo 19/04/2011, 04:41
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Información Problema con formulario y PHP - Además, una consulta teórica -

Hola a todos:
Para empezar, quisiera haceros una pregunta algo teórica. He estado buscando en los manuales y, o soy muy zote, o no está explicado.

Al rellenar un formulario y pasarlo a otra página mediante el "action", cómo pasan los checkbox??? Es decir, tengo una serie de checkbox q pueden ser marcados a la vez (tienen el mismo "name" pero "value" distintos) ... y quisera saber cómo pasan a otros scripts. Y como puedeo acceder a los valores q contienen.

Lo pregunto porq estoy diseñando un formulario en el cual se puede marcar las partes del cuerpo afectadas por una lesión, y meterlas en una base de datos una tras otra (es decir, si la zona afectada es de cuello, hombro y brazo, hay un checkbox para cada uno, al marcarlos y dar a enviar, en la base de datos quiero q aparezca cuello-hombro-brazo).
En el formulario, valido los valores mediante javascript, para saber si están marcados los checkbox, y al dar a enviar, me redirige a una pagina en php q abre la base de datos y entrega los valores.

Gracias de antemano.
  #2 (permalink)  
Antiguo 19/04/2011, 05:02
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: Problema con formulario y PHP - Además, una consulta teórica -

Los checkbox se pasan igual que el resto de elementos de un formulario, "name" te sirve para recuperar después el "value" de ese checkbox. Si "value" está vacío entonces el checkbox no se seleccionó.

Pero veo un error en el diseño del formulario. Si son checkbox todos deberían tener distinto "name" sino solo recibirás el valor de un checkbox.

Todos tienen que tener el mismo "name" cuando se trata de radiobuttons (los que seleccionan una opción de varias).
  #3 (permalink)  
Antiguo 19/04/2011, 05:19
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con formulario y PHP - Además, una consulta teórica -

Hola Ruben:
necesito coger cada valor del checkbox, y ademas tengo 5 juegos de unos 15 checkbox, con lo cual tengo 15 posibles valores q validar en 5 items distintos y luego trabajar con ellos. Habia leido x ahi q puedo ponerle el mismo nombre y me los pasa com un arreglo, pero no estoy seguro.
Ademas, si lo pasa como un arreglo... q pasa con los checkbox no seleccionados?

PD. Gracias x la respuesta!

Cita:
Iniciado por _Ruben_ Ver Mensaje
Los checkbox se pasan igual que el resto de elementos de un formulario, "name" te sirve para recuperar después el "value" de ese checkbox. Si "value" está vacío entonces el checkbox no se seleccionó.

Pero veo un error en el diseño del formulario. Si son checkbox todos deberían tener distinto "name" sino solo recibirás el valor de un checkbox.

Todos tienen que tener el mismo "name" cuando se trata de radiobuttons (los que seleccionan una opción de varias).
  #4 (permalink)  
Antiguo 19/04/2011, 05:38
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: Problema con formulario y PHP - Además, una consulta teórica -

Nunca he tenido que pasar tantos checkbox por lo que no he investigado nunca otras formas de pasarlos. Si es cierto que los checkbox pueden pasarse como un array supongo que sería un array de una fila y tantas columnas como checkbox se hayan seleccionado, igualmente los no seleccionados no deberían enviarse. Pero ya te digo que desconozco si pueden pasarse de esa forma.

Cada uno con un "name" distinto si se puede. Si quieres investiga lo de pasarlos como un array, si no existe nada te dejo un pequeño ejemplo de como pasar tantos y leerlos después (de la forma en que lo haría yo).

A cada juego de checkbox le pones un "name" común con una parte específica que los númere, si tienes 5 de 15 cada uno (75 checkbox en total) podrías usar estos "name":
1_1 1_2 1_3 ... 1_15 => Para el primer juego
2_1 2_2 2_3 ... 2_15 => Para el segundo juego
...
5_1 5_2 5_3 ... 5_15 => Para el quinto juego

Y después leerlos con un bucle:
Código PHP:
for($i=1$i<=15$i++)
     echo 
$_POST['1_' $i] . " - "
Es bucle te serviría para el primer juego de checkbox (para los otros sería muy similar). Con este bucle solo mostrarías lo que recibes, el tratamiento que le quieras dar ya depende de ti, yo solo te he dado la forma de leerlos sin que sea tan pesado. Puedes tratarlos directamente en el bucle para unirlos con guiones (que creo que es lo que quieres).

Si alguno no existe te devolvería un valor vacío.
  #5 (permalink)  
Antiguo 19/04/2011, 06:44
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con formulario y PHP - Además, una consulta teórica -

Hola Ruben:
Lo q pasa es a q la hora de validar todo con javascript es mucho más lioso hacerlo de esta forma, dado q son mucho...
Con javascript lo valido en grupo, con funciones como

var mot="no";
for ( var j = 0; j < motiv_les.length; j++ )
{
if (motiv_les[j].checked)
{
mot="si";
motivos=motivos*10+motiv_les[j].value;
}
}
if ( mot == "no" )
{
alert("Indique los posibles motivos de la lesión." ) ;
formulario.motiv_les[0].focus();
return (false);
}



De esta manera, con q alguno este en checked, vale para q este validado.
De todas formas, si sabes como puedo pasar un valor de javascript (en este caso, motivos, q tiene todos los posibles motivos uno tras otro) a la pagina php q ingresa los valores a la base de datos, me seria de mucha mucha utilidad.


Cita:
Iniciado por _Ruben_ Ver Mensaje
Nunca he tenido que pasar tantos checkbox por lo que no he investigado nunca otras formas de pasarlos. Si es cierto que los checkbox pueden pasarse como un array supongo que sería un array de una fila y tantas columnas como checkbox se hayan seleccionado, igualmente los no seleccionados no deberían enviarse. Pero ya te digo que desconozco si pueden pasarse de esa forma.

Cada uno con un "name" distinto si se puede. Si quieres investiga lo de pasarlos como un array, si no existe nada te dejo un pequeño ejemplo de como pasar tantos y leerlos después (de la forma en que lo haría yo).

A cada juego de checkbox le pones un "name" común con una parte específica que los númere, si tienes 5 de 15 cada uno (75 checkbox en total) podrías usar estos "name":
1_1 1_2 1_3 ... 1_15 => Para el primer juego
2_1 2_2 2_3 ... 2_15 => Para el segundo juego
...
5_1 5_2 5_3 ... 5_15 => Para el quinto juego

Y después leerlos con un bucle:
Código PHP:
for($i=1$i<=15$i++)
     echo 
$_POST['1_' $i] . " - "
Es bucle te serviría para el primer juego de checkbox (para los otros sería muy similar). Con este bucle solo mostrarías lo que recibes, el tratamiento que le quieras dar ya depende de ti, yo solo te he dado la forma de leerlos sin que sea tan pesado. Puedes tratarlos directamente en el bucle para unirlos con guiones (que creo que es lo que quieres).

Si alguno no existe te devolvería un valor vacío.
  #6 (permalink)  
Antiguo 19/04/2011, 07:04
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: Problema con formulario y PHP - Además, una consulta teórica -

De javascript no se mucho, supongo que puede hacerse pero mis conocimientos de javascript no llegan a tanto jejeje.
  #7 (permalink)  
Antiguo 19/04/2011, 07:31
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problema con formulario y PHP - Además, una consulta teórica -

Que tal xtian_pa, mira este enlace que se encuentra en la wiki del foro, creo que te puede ayudar en lo que necesitas.
Cómo gestionar acciones a los registros seleccionados con checbox


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #8 (permalink)  
Antiguo 19/04/2011, 08:30
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: Problema con formulario y PHP - Además, una consulta teórica -

amigo yo capturo mi check asi:
Código PHP:
$valor=$_REQUEST['chk']; 
donde lo que se almacenara 'on' o 'off' si seleccionas o no

lo puedes comparar asi

Código PHP:
if(isset($_REQUEST['chk']){
    
hacerAlgo
}
else{
    
noHacerNada


Etiquetas: checkbox, bases-de-datos
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 19:06.