Foros del Web » Programando para Internet » Javascript »

problemas al hacer un Filtro multiple de Departamento Provincia Distrito

Estas en el tema de problemas al hacer un Filtro multiple de Departamento Provincia Distrito en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/05/2011, 19:55
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
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
  #2 (permalink)  
Antiguo 20/05/2011, 17:17
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: problemas al hacer un Filtro multiple de Departamento Provincia Distrito

hola, encontre mi problema.
El problema que tengo esta en este for:
Código Javascript:
Ver original
  1. for(i=0; i < oResp.length;i++){
  2.                 nselect +="<option value='"+id+"'>"+oResp[i].nombre+"</option>";
  3.             }

no se esta escribiendo en el value de option lo que quiero, por ejempo un numero, sino una cadena de texto. porque esta mal parseado, este id se forma asi:

id = "oResp[i].id"+operar;

operar, toma un nombre por ejemplo Departamento, y en ese id lo que se guarda es oResp[i].idDepartamento, pero en cadena de texto, y no quiero que haga eso, sino que se ejecute porque en el arrar existe una fila con nombre idDepartamento. Otras veces operar seria por ejemplo Provincia, entonces id seria oResp[i].idProvincia. como hago para que se ejecute??
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com

Última edición por Copia; 20/05/2011 a las 17:28
  #3 (permalink)  
Antiguo 22/05/2011, 10:26
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: problemas al hacer un Filtro multiple de Departamento Provincia Distrito

hola, nuevamente.

Amigos tengo un problema a resolver, ya las funciones andan bien.

El problema es que no se como hacer para que javascript reconosca un cambio en el segundo select.

Código php:
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>

Cuando hay un cambio en el select con id = origenDepartamento, se procesan los datos y se reescribe el select con id=origenProvincia y se llenan con los datos correspondientes, pero el js no lo identifia: este es ahora el js:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $('#origenDepartamento').change(function()
  3.     {
  4.        procesar($(this).val(),"Provincia");
  5.     });
  6.      $('select[id="origenProvincia"]').change(function()
  7.     {
  8.         alert('a'); //no lo imprime.
  9.         //procesar($(this).val(),"Distrito","idProvincia");
  10.     });
  11. });

Que estoy haciendo mal??
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #4 (permalink)  
Antiguo 22/05/2011, 10:49
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: problemas al hacer un Filtro multiple de Departamento Provincia Distrito

algo que me falto comentar es que cuando hago por ejemplo:
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.         $('#origenDepartamento').change(function()
  3.         {
  4.            procesar($(this).val(),"Provincia");
  5.         });
  6.          $('#divProvincia').change(function()
  7.         {
  8.             alert('a'); //aqui si lo imprime
  9.             //procesar($(this).val(),"Distrito","idProvincia");
  10.         });
  11.     });

Se imprime a.. porque???
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com

Etiquetas: distrito, provincia, filtros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:52.