Selects dependientes 3 niveles con ajax

Iniciado por KateLibby, 12 Noviembre 2013, 17:06 PM

0 Miembros y 1 Visitante están viendo este tema.

KateLibby

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 (php) [Seleccionar]

<select name="tipo" onChange="getFamilia(this.value)">
    <option value="table_acero">Acero</option>
    <option value="table_madera">Madera</option>
</select>

<select name="familia" onChange="getMaterial(this.value)">
    //Se carga por Ajax el combo correspondiente a lo elegido en el select anterior
</select>

<select name="material">
    //Se tendria que cargar por Ajax el combo correspondiente a lo elegido en el primer y segundo select
</select>


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

KateLibby

Vale... creo ya lo sé. He estado horas, y ahora en un segundo me ha venido la solución.

Simplemente esto:

Código (php) [Seleccionar]

getMaterial(this.value, tipo.value);

gowend

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 (javascript) [Seleccionar]

function getMaterial(valor,tipo){
var datos = {valor:valor,tipo:tipo};
$.ajax({
  url:'ajax/file.php',
  data: datos;
  dataType:'html',
  success: function(e){
   $("#material").html(e);
  }
})
}
.

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.
Gowend132 El conocimiento es LIBRE!!!

KateLibby

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

Graphixx

Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

gowend

Cita de: 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

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 :)
Gowend132 El conocimiento es LIBRE!!!