Foros del Web » Programando para Internet » Jquery »

Selects dependientes

Estas en el tema de Selects dependientes en el foro de Jquery en Foros del Web. Hola, Tengo el siguiente codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original /*Select Anidado Departamento */       $ ( document ) . ready ...
  #1 (permalink)  
Antiguo 27/06/2012, 09:21
Avatar de Lerolero  
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Selects dependientes

Hola,

Tengo el siguiente codigo:
Código Javascript:
Ver original
  1. /*Select Anidado Departamento */  
  2.     $(document).ready(function(){
  3.     $('#pais').change(function(){
  4.          var id=$('#pais').val();
  5.     $("#departamentos").load('Modulos/carga_departamento.php?id='+id);
  6.         });
  7.      /*Select Anidado Ciudad */
  8.  
  9.     $('#departamento').change(function(){
  10.          var id=$('#departamento').val();
  11.     $("#ciudades").load('Modulos/carga_ciudad.php?id='+id);
  12.                    
  13.         });
  14.    });

En el formulario:
Código HTML:
Ver original
  1. <label>* Departamento:</label>
  2.                <div id="departamentos">
  3.                 <!-- Si md no tiene ningun valor muestra este select-->
  4.                 <!-- Crea el select que se llena con datos dependiendo de lo que se seleccione en el select de pais-->
  5.                 <select  disabled="disabled" name="departamento" id="departamento">
  6.                     <option value="" selected="selected" >Selecciona opci&oacute;n</option>
  7.                 </select></div>
  8.  
  9.             <!-- Crea el select que se llena con datos dependiendo de lo que se seleccione en el select de departamento-->
  10.             <label>* Ciudad:</label>
  11.             <div id="ciudades">
  12.                 <select disabled="disabled" name="ciudad" id="ciudad">
  13.                     <option value="" selected="selected" >Selecciona opci&oacute;n</option>
  14.                 </select><!--Cierra el select-->
  15.             </div>

Y los respectivos selects:
cargar_departamento.php
Código PHP:
Ver original
  1. $obj_agenda = new sQuery();
  2. $query = 'SELECT ID, NOMBRE FROM t_departamento WHERE ACTIVO_ID=2 AND RELACION='.$_GET['id'].' ORDER BY NOMBRE';
  3. $result = $obj_agenda->executeQuery($query);
  4.  
  5.  
  6. // Comienzo a imprimir el select
  7. echo "<select name='departamento' id='departamento'>";
  8. echo "<option value=''>Seleccionar opci&oacute;n</option>";
  9. while ($row = mysql_fetch_array($result)) {
  10.     echo '<option value="' . $row['ID'] . '">
  11.                           ' . htmlentities($row['NOMBRE']) . '
  12.                         </option>';
  13. }
  14.  
  15. echo "</select>";

cargar_ciudad.php
Código PHP:
Ver original
  1. $obj_agenda = new sQuery();
  2. $query = 'SELECT ID, NOMBRE FROM t_ciudad WHERE ACTIVO_ID=2 AND RELACION='.$_GET['id'].' ORDER BY NOMBRE';
  3. $result = $obj_agenda->executeQuery($query);
  4.  
  5.  
  6. // Comienzo a imprimir el select
  7. echo "<select name='ciudad' id='ciudad'>";
  8. echo "<option value=''>Seleccionar opci&oacute;n</option>";
  9. while ($row = mysql_fetch_array($result)) {
  10.     echo '<option value="' . $row['ID'] . '">
  11.                           ' . htmlentities($row['NOMBRE']) . '
  12.                         </option>';
  13. }
  14.  
  15. echo "</select>";

Esto solo me carga el primer select, el segundo que es el de ciudades no hace nada.
  #2 (permalink)  
Antiguo 27/06/2012, 10:46
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 10 meses
Puntos: 12
Respuesta: Selects dependientes

Al traer un elemento HTML a traves de ajax estos aparecen "muertos" es decir que no responden a ningun evento en particular en este caso el 'change', debemos entonces "revivirlos" para lo cual hay dos alternativas live() y delegate(), usaremos el live() aunque algunos puristas del javascript dicen que es mejor el delegate por razones de desempeño aunque para cosas pequeñas la diferencia es casi nula. En fin prueba esto.

Código Javascript:
Ver original
  1. $('#departamento').live('change', function(){
  2. var id=$(this).val(); // This se refiere al elemento que ejecuta el evento
  3.  $("#ciudades").load('Modulos/carga_ciudad.php?id='+id);
  4.  
  5. });
  #3 (permalink)  
Antiguo 27/06/2012, 11:36
Avatar de Lerolero  
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Selects dependientes

Gracias!!!...Llevaba hace rato con eso y no me daba.........No sabia que existía lo del live() y delegate()

Etiquetas: Ninguno
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 16:21.