Ver Mensaje Individual
  #10 (permalink)  
Antiguo 03/10/2013, 15:34
AlanChavez
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 11 meses
Puntos: 95
Respuesta: Estructuras anidadas con php y jquery

Ok, basicamente necesitas llenar un segundo select con la informacion seleccionada en el primero.

Primero tienes que definir el segundo select en HTML

Código HTML:
Ver original
  1. <select name="ciudades" id="selectCiudades"></select>

Si lo quieres hacer sin recargar la pagina, lo que tienes que hacer es crear un archivo independiente que regrese un objeto JSON, y lo vas a llamar de la siguiente manera en Javascript:


Código Javascript:
Ver original
  1. $(document).ready(function() {
  2. var select = $('#especialidad');
  3. select.on('change', function(e) {
  4.    $.ajax({
  5.         type: "POST",
  6.         url: "ciudadPorEstado.php",
  7.         data: {estado: select.val()}
  8.     }).done(function(datos) {
  9.          $.each(datos, function(id, nombre) {  
  10.             $('#selectCiudades')
  11.             .append($("<option></option>")
  12.             .attr("value",datos.id)
  13.               .text(datos.nombre);
  14. });
  15.     });
  16. });
  17. });

Despues tu archivo ciudadPorEstado.php debe lucir algo asi:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $estado = $_POST['estado'];
  4. /** aqui haz tu llamada a la base de datos, y llenas un array con la informacion de tu base de datos
  5.      y supongamos que almacenas los resultados de la base de datos en el array $ciudades con las llaves id, y nombre.
  6.      tendrias un array de la siguiente forma:
  7.  
  8.  $ciudades[0]['id']  = 2;
  9.  $ciudades[0]['nombre'] = "Monterrey"
  10.  
  11.  $ciudades[1]['id'] = 3;
  12.  $ciudades[1]['nombre'] = "DF"
  13.  
  14.  $ciudades[2]['id'] = 1;
  15.  $ciudades[2]['nombre'] = "Guadalajara"
  16. **/
  17.  
  18. return json_encode($ciudades);

De esa manera puedes llenar un segundo combo box con AJAX, jQuery y PHP.

Obviamente el ejemplo descrito arriba es meramente practico, pero te sirve para dare una idea general de lo que tienes que hacer.