Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: KateLibby en 12 Noviembre 2013, 17:06 pm



Título: Selects dependientes 3 niveles con ajax
Publicado por: KateLibby en 12 Noviembre 2013, 17:06 pm
Hola!

Tengo que implementar unos selects dependientes de 3 niveles, de forma que el segundo select depende del primero y el tercero depende de lo seleccionado en el primero y el segundo.

Tengo el siguiente código:

Código
  1. <select name="tipo" onChange="getFamilia(this.value)">
  2.    <option value="table_acero">Acero</option>
  3.    <option value="table_madera">Madera</option>
  4. </select>
  5.  
  6. <select name="familia" onChange="getMaterial(this.value)">
  7.    //Se carga por Ajax el combo correspondiente a lo elegido en el select anterior
  8. </select>
  9.  
  10. <select name="material">
  11.    //Se tendria que cargar por Ajax el combo correspondiente a lo elegido en el primer y segundo select
  12. </select>
  13.  

Me gustaría añadir en la función getMaterial(this.value) el parámetro del valor elegido en el primer select, sin tener que enviar el formulario o recargar la página. Hay alguna forma de hacerlo?

Gracias


Título: Re: Selects dependientes 3 niveles con ajax
Publicado por: KateLibby en 12 Noviembre 2013, 17:11 pm
Vale... creo ya lo sé. He estado horas, y ahora en un segundo me ha venido la solución.

Simplemente esto:

Código
  1. getMaterial(this.value, tipo.value);


Título: Re: Selects dependientes 3 niveles con ajax
Publicado por: gowend en 14 Noviembre 2013, 22:39 pm
Sí esa es una manera, y puedes hacer una función javascript que te reciba los parámetros y los envías a un script PHP y que te devuelva los datos que estén relacionados con la opción que se escogió.

Código
  1. function getMaterial(valor,tipo){
  2. var datos = {valor:valor,tipo:tipo};
  3. $.ajax({
  4.  url:'ajax/file.php',
  5.  data: datos;
  6.  dataType:'html',
  7.  success: function(e){
  8.   $("#material").html(e);
  9.  }
  10. })
  11. }
  12.  
.

Ya lo del PHP es a tu manera ;) ahh y para que ese ejemplo de javascript te funcione utiliza jquery es super sencillo y facilita las cosas. Saludos.


Título: Re: Selects dependientes 3 niveles con ajax
Publicado por: KateLibby en 14 Noviembre 2013, 23:53 pm
Muchas gracias!  ;-)

Y ya que mencionas lo de Ajax, hay alguna forma en que yo pueda recoger en una variable lo que me devuelve la función getMaterial? Lo único que consigo es "vomitarlo" todo en un <div>, pero después me gustaría poder hacer algo con los datos que me devuelve.

Gracias de nuevo


Título: Re: Selects dependientes 3 niveles con ajax
Publicado por: Graphixx en 15 Noviembre 2013, 04:49 am
[TUTE] Clase para generar automaticamente select(combos) dependientes multinivel
http://foro.elhacker.net/desarrollo_web/tute_clase_para_generar_automaticamente_selectcombos_dependientes_multinivel-t379538.0.html


Título: Re: Selects dependientes 3 niveles con ajax
Publicado por: gowend en 15 Noviembre 2013, 15:38 pm
Muchas gracias!  ;-)

Y ya que mencionas lo de Ajax, hay alguna forma en que yo pueda recoger en una variable lo que me devuelve la función getMaterial? Lo único que consigo es "vomitarlo" todo en un <div>, pero después me gustaría poder hacer algo con los datos que me devuelve.

Gracias de nuevo

Desde luego, existen varias funciones jquery que te permiten manipular lo que devuelva la función, te recomiendo la función each, http://api.jquery.com/each/ ahí esta toda la documentación y con ejemplos de esa función :)