Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Enviar 2 arrays diferentes con $.post

Estas en el tema de Enviar 2 arrays diferentes con $.post en el foro de Frameworks JS en Foros del Web. Hola a todos, Tengo un problemilla con el envío de 2 arrays que recojo con javascript y que envío a una función a través de ...
  #1 (permalink)  
Antiguo 23/06/2011, 06:09
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 12 años, 10 meses
Puntos: 0
Enviar 2 arrays diferentes con $.post

Hola a todos,

Tengo un problemilla con el envío de 2 arrays que recojo con javascript y que envío a una función a través de $.post. Este es mi primer post aquí ya que hasta ahora he podido solucionar los problemas leyendo otros posts de compañeros.

Os cuento más detalladamente. Tengo una base datos en la que tengo 3 tabla diferentes con campos id_marca, nom_marca; id_tipo, nom_tipo; id_subtipo, nom_subtipo.

Quiero hacer un pequeño buscador. Para ello, cargo en un "select" todos los tipos de productos que hay en la tabla tipo_producto. Una vez seleccionado el tipo de producto, consulto todas las marcas que pueden ofrecer ese tipo de producto y pinto una serie de checkboxes con todas las marcas y el número de resultados que hay en mi base de datos correspondientes a esa marca.

Aparte, también hago una consulta de todos los subtipos de productos que hay dentro del tipo de producto seleccionado y pinto todas las opciones a través checkboxes.

Una imagen vale más que mil palabras: [URL="http://imageshack.us/photo/my-images/804/tipomarcasysubtipos.jpg/"]imagen[/URL]

Aquí empieza el problema.

Quiero guardar los dos conjuntos de checkbox en dos arrays independientes. A uno lo llamo marca[] y a otro lo llamo subtipo[] y mediante la función $.post() los envío a una función php que (en esta fase del script) me pinta los diferentes Arrays en dos divs con ids resultado y resultado1.

Los checkbox los pinto con php, os pongo la forma abreviada (la parte html):

Código:
echo '<input type="checkbox" class="marca" id="marca" name="marcas[]" value="' . $fila['id_marca'] . '">' . $fila['nom_marca'] . '(' . $num_res . ')<br>';;
El input de subtipo tiene como name="subtipo[]"

Ahora quiero guardar los diferentes conjuntos de checkboxed marca[] y subtipo[] en dos arrays diferentes y pasarlo a una función que me pinta (para comprobación) el array que le he pasado). Esto lo hago con el siguiente script en jquery:

Código:
<script>
 $(".marca").change(function(){
	var marca = new Array(); 
	$("input[@name='marcas[]']:checked").each(function() {marca.push($(this).val());}); 
	$.post( "dump.php", {'marca[]':marca}, function(data){$('#resultado').html(data);});
 });
</script>
Y este para el de subtipo:

Código:
  <script>
 $(".subtipo").change(function(){
	var subtipo = new Array();
	$("input[@name='subtipos[]']:checked").each(function() {subtipo.push($(this).val());}); 
	$.post( "dump.php", {'subtipo[]':subtipo}, function(data1){$('#resultado1').html(data1);});
  });
</script>
Ahora bien, cuando selecciono por ejemplo Sony(value=1), Panasonic(value=2), Led(value=1), LCD(value=2),

Me pinta lo siguiente: [URL="http://imageshack.us/photo/my-images/64/arrays.jpg/"]imagen[/URL]

El problema parece ser que me mete los valores seleccionados de los diferentes grupos de checkbox en el mismo array. Y me gustaría poder tener los dos arrays separados para poder realizar busquedas independientes con ellos.

Siento mucho la extensión de este primer post, pero es algo que no consigo resolver por mi cuenta y posiblemente sea un detalle muy tonto. No soy un experto en programación, más bien soy autodidacta.

Muchas gracias por vuestra ayuda
  #2 (permalink)  
Antiguo 27/06/2011, 05:37
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Enviar 2 arrays diferentes con $.post

Buenas a todos

¿Nadie me puede aconsejar? Por favor, comentadme si veis alguna solución.

Gracias.

Saludos.

Etiquetas: javascript, jquery
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 21:10.