Foros del Web » Creando para Internet » HTML »

Enviar radiobuttons o checkboxes sin marcar

Estas en el tema de Enviar radiobuttons o checkboxes sin marcar en el foro de HTML en Foros del Web. Cuando en un formulario se ponen radiobuttons o checkboxes, luego solo se envian los marcados. Que se puede hacer para enviar tambien los datos de ...
  #1 (permalink)  
Antiguo 18/10/2006, 04:12
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 10 meses
Puntos: 2
Enviar radiobuttons o checkboxes sin marcar

Cuando en un formulario se ponen radiobuttons o checkboxes, luego solo se envian los marcados. Que se puede hacer para enviar tambien los datos de los no marcados?

Gracias!
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #2 (permalink)  
Antiguo 18/10/2006, 11:03
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años
Puntos: 1826
Yo creo que un script donde evalues, si no está uno marcado, entonces genera un dato al respecto.

Con JavaScript o en el servidor.
  #3 (permalink)  
Antiguo 18/10/2006, 12:57
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 10 meses
Puntos: 2
No he entendido muy bien lo que me quieres explicar, me lo puedes decir con otras palabras, por favor?
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #4 (permalink)  
Antiguo 19/10/2006, 04:18
 
Fecha de Ingreso: septiembre-2006
Mensajes: 40
Antigüedad: 17 años, 6 meses
Puntos: 0
Lo que hace un checkbox marcado es enviar una variable con el contenido de su "value". Lo que te quiere decir Rafael es que puedes hacer con JavaScript un pequeño código que haga que si no está marcado, la envíe con "vacio" como "value" (por ejemplo).
  #5 (permalink)  
Antiguo 19/10/2006, 10:11
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años
Puntos: 1826
Si, es que la especificación html indica que si un input está vacío no envíe nada el mismo navegador, el texto:
Cita:
If a control doesn't have a current value when the form is submitted, user agents are not required to treat it as a successful control.
Entonces la siguiente parte no está enterada de los elementos no enviados, los vacíos.

Lo unico que puedes hacer es un script con la lista de los controles que pusisite originalmente, y se evalúen:
Cita:
-¿Juanito? -Presente
-¿Pedrito? -Presente maestra
-¿Pepito?... ¿Pepito?... ¿PEPITO?.
-No me grite maestra, estoy ausente pero no sordo.
Esa lista la necesita tener la maestra, o sea el script para evaluar FALTA.

Tu script va a decir algo así:
if ($Pepito = "") {$Pepito = "FALTA";}
if ($Pepito != "") {$Pepito = "Me está tomando el pelo";}


O sea, si un elemento mandara cualquier sonido, significa que sí está el desgrac... input.
Por eso se quedan calladitos.

Este script va a evaluar como faltantes a los que ni siquiera estén en tu formulario inicial.

Última edición por Rafael; 19/10/2006 a las 10:19
  #6 (permalink)  
Antiguo 19/10/2006, 10:32
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 21 años, 11 meses
Puntos: 1284
Hola:

No entiendo porqué enviar esos datos, pero se puede enviar un campo oculto con el array de radios. con el formulario solo se enviará uno, pero en un campo se podría enviar los valores sepatados por el separador preferido (tal vez comas, y el CGI que lo gestione que lo convierta en array:
<input type="hidden" name="radios" value="si,no" />
<input type="radio" name="r" value="si" />
<input type="radio" name="r" value="no" />
...

Y el CGI:
$radios = implode(",", $_GET["radios"]);

Suponiendo que sea php...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 09:26.