Foros del Web » Programando para Internet » Javascript »

Pasar muchos parámetros checkbox por AJAX

Estas en el tema de Pasar muchos parámetros checkbox por AJAX en el foro de Javascript en Foros del Web. Buenas, tengo un formulario con códigos de producto ( idproducto ), imagen del producto y un input type=checkbox para seleccionar el mismo. Lo que hago ...
  #1 (permalink)  
Antiguo 23/03/2012, 15:13
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Pasar muchos parámetros checkbox por AJAX

Buenas, tengo un formulario con códigos de producto (idproducto), imagen del producto y un input type=checkbox para seleccionar el mismo.

Lo que hago es mostrar muchos productos, 50 o incluso más cada uno con su imagen y checkbox correspondiente.

Lo que quiero conseguir es pasar por AJAX aquellos idproductos que estén "chequeados / marcados". Con eso introduciré los códigos en la base de datos para hacer un pedido.

Bueno, el tema es que son un montón de parámetros los que tendría que pasar. Después de construir el formulario podría recogerlos con:


Código PHP:
var idchecked document[formname].idchecked .checked
si está chequeado hago:

Código PHP:
var idproducto document[formname].idproducto .value
Hay alguna forma más fácil de ir comprobando los 50 o más checkbox?

Luego el problema es que tengo que pasarlos por AJAX en plan:

Código PHP:
ajax.send("xxx"); 
  #2 (permalink)  
Antiguo 23/03/2012, 15:45
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Pasar muchos parámetros checkbox por AJAX

¡buenas!
¿no te sirve un bucle? o sea, iteras por todos los checkboxes comprobando su estado. luego vas agregando el valor del checkbox a una variable o bien podrías almacenar las referencias de los checkboxes en un array. cuando toque enviarlo por ajax tienes que componer los parámetros de la misma forma como lo haría un formulario: name=value&name=value... donde name es el nombre del campo (checkbox en este caso) y value el valor del campo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 23/03/2012, 16:17
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Pasar muchos parámetros checkbox por AJAX

En principio podría parecer esa la solución pero la variable que almacena cada checkbox se llama

idproducto1 (valor 0/1)
idproducto34 (valor 0/1)
idproducto23 (valor 0/1)
idproducto129 (valor 0/1)

es decir que el número que sigue a "idproducto" es precisamente el idproducto que puede ser cualquiera (y tengo como 1000 productos y serán más cada día). Es decir que no sé a priori los nombres de los checkbox.

El valor 0 ó 1 es evidentemente si se ha o no chequeado.

Última edición por humanista; 23/03/2012 a las 16:24
  #4 (permalink)  
Antiguo 23/03/2012, 16:32
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Pasar muchos parámetros checkbox por AJAX

no tienes que enviar todos los campos, solo los marcados. y sobre el nombre de los checkboxes, creeria que entonces esta mal diseñado. no se cual es la mejor manera, pero quizas todos los checkbox deberian tener el mismo nombre y como valor el id del producto. para enviar multiples campos con el mismo nombre, no estoy seguro si es dependiente del lenguaje servidor. pero al menos en php, tienes que agregarle al final del nombre un par de corchetes ( [ ] ) para que lo interprete como un array.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 23/03/2012, 17:06
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Pasar muchos parámetros checkbox por AJAX

Bueno, es una opción pero no lo veo tan claro, lo que voy a hacer es que cada vez que se clique en el check box actualice la base de datos con un evento onclick y AJAX.

El tema es -seguramente una bobada- cómo recojo el valor del checkbox cuando éste no forma parte de un formulario.

Debe ser algo así pero no me va:

Código Javascript:
Ver original
  1. if (document.checkboxnanme.checked==true)

checkboxname es idproducto7, idproducto12...
  #6 (permalink)  
Antiguo 23/03/2012, 17:31
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Pasar muchos parámetros checkbox por AJAX

También he probado con:

Código Javascript:
Ver original
  1. document.getElementById('Checkbox1').checked
y tampoco
  #7 (permalink)  
Antiguo 23/03/2012, 17:34
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Pasar muchos parámetros checkbox por AJAX

Vaya!!!, ya lo solucioné con la 2ª opción, me fallaba porque no puse id=nombre en el input del checkbox (había puesto sólo name=nombre)
  #8 (permalink)  
Antiguo 26/03/2012, 21:07
 
Fecha de Ingreso: enero-2007
Ubicación: Colombia-Bucaramanga
Mensajes: 4
Antigüedad: 17 años, 2 meses
Puntos: 0
Pregunta Respuesta: Pasar muchos parámetros checkbox por AJAX

Te agradezco si me puede ayudar tengo la misma duda sobre como enviar por ajax y como recibirla en php. De corazòn te agradezco si me puede colaborar con un ejemplo.
  #9 (permalink)  
Antiguo 27/03/2012, 01:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Pasar muchos parámetros checkbox por AJAX

Hola:

Fíjate en la respuesta de zerokilled

Se encadenan los checked con el formato nombre[]=escape(valor)...

Una recomendación que siempre hago es crear el sistema para que funcione con javascript desactivado y luego añadirle las implementaciones javascript/Ajax.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: ajax, checkbox, formulario, input, muchos
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 00:06.