Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/05/2011, 19:55
Avatar de Copia
Copia
 
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años
Puntos: 4
Pregunta problemas al hacer un Filtro multiple de Departamento Provincia Distrito

Hola comunidad, tengo un problema al hacer funcionar un filtro múltiple que son combos(Select) donde al Seleccionar un Departamento, con ajax se cargue Las provincias que tiene dicho departamento, de igual forma con los departamentos que una vez seleccionados me muestre los distritos.

Esta es la porcion de html para los combos:
Código HTML:
Ver original
  1. <div class="select3">
  2.         <label for="hostname">Departamento</label>
  3.         <select id="origenDepartamento" class="select3">
  4.             <option value="n"></option>
  5.           <?php
  6.                foreach($departamento as $dp){
  7.                    echo "<option class='origenDepartamento' value='"
  8.                         .$dp->idDepartamento."'>"
  9.                          .$dp->Nombre."</option>";
  10.                 }
  11.           ?>
  12.         </select>
  13.     </div>
  14.  
  15.     <div id="divProvincia" class="select3">
  16.         <label for="hostname">Provincia</label>
  17.         <select id="origenProvincia"  class="select3">
  18.             <option value="n"></option>          
  19.         </select>
  20.     </div>
  21.  
  22.     <div id="divDistrito" class="select3">
  23.         <label for="hostname">Distrito</label>
  24.         <select id="origenDistrito"  class="select3">
  25.             <option value="n"></option>
  26.         </select>
  27.     </div>

A continuacion el código en javascript con jquery, lo que hace es lanzar la funcion procesar(); si hay un cambio en el select departamento o provincia. Luego envia por post al servidor unos datos a procesar, una vez hecho esto lo devuelve, el valor devuelto tiene formato JSON:
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $('#origenDepartamento').change(function()
  3.     {
  4.         procesar($(this).val(),"Provincia","idDepartamento");
  5.     });
  6. });
  7. $(document).ready(function(){
  8.     $('#origenProvincia').change(function()
  9.     {
  10.         alert("a");
  11.         procesar($(this).val(),"Distrito","idProvincia");
  12.     });
  13. });
  14.  
  15.  
  16. function procesar(idSelect,operar,nameId){    
  17.     $.ajax(
  18.     {
  19.         type: 'POST',
  20.         url:'http://localhost/asd/procesarCampos/',
  21.         data: 'id='+idSelect+'&operar='+operar+'&nameId='+nameId,
  22.         success: function(resp){            
  23.             var oResp = eval("("+resp+")");
  24.             var nselect = "<div id='div"+operar+"' class='select3'>"+
  25.             "<label for='hostname'>"+operar+"</label>"+
  26.             "<select id='"+operar+"' class='select3'><option value='n'></option>";
  27.             id = "oResp[i].id"+operar;
  28.             for(i=0; i < oResp.length;i++){
  29.                 nselect +="<option value='"+id+"'>"+oResp[i].nombre+"</option>";
  30.             }
  31.             nselect +="</select></div>";
  32.  
  33.             $('div[id="div'+operar+'"]').html(nselect);
  34.  
  35.         }
  36.     }
  37.     );
  38. }

Bien el código me funciona correctamente cuando selecciono un departamento, por ejemplo Lima. carga las provincias que esta tiene, pero el problema recide que al seleccionar una provincia no me muestra sus distritos.

Yo pienso porque el codigo html en un inicio para provincia y distrito los select estan vacíos y a pesar de que se carguen las provincias tras la selección de un departamento el DOM no se modifica puesto que no me reconoce un cambio en el select provincias.

Tengo un atasco en esto y no se me ocuerre ahora nada para resolverlo ¿que puedo hacer?
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com