Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/06/2011, 06:09
donaire80
 
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