estoy creando un formulario con 3 select:
Provincia.
Subzona.
Localidad.
Al cambiar provincia hago la peticion de subzonas y localidades de la provincia.
Al cambiar subzona hago peticion de localidades de esa subzona.
La cuestion es que al cambiar provincia todo va bien, pero cuando cambio la subzona (que proviene como respuesta al cambiar la provincia) parece que no puedo pillar el id al venir de una respuesta ajax y por lo tanto no puedo hacer una nueva petición para recibir las nuevas localidades.
Este es el codigo:
El js:
Código:
El PHP:<script> $(document).ready(function() { $("#loading").ajaxStart(function(){ $(this).show(); $('#resultado').hide(); }); $('#select_provincias').change(function() { $.ajax({ type:"POST", url:"<?php echo base_url();?>"+"index.php/ajax/selects_filtro_portada", data:"provincia="+$('#select_provincias').val(), success: function(data){ $('#resultado').html(data); } }); }); $('#select_subzonas').change(function() { $.ajax({ type:"POST", url:"<?php echo base_url();?>"+"index.php/ajax/selects_filtro_portada2", data:"subzona="+$('#select_subzonas').val(), success: function(data){ $('#resultado2').html(data); } }); }); $('#select_provincias').change(); $("#loading").ajaxStop(function(){ $(this).hide(); $('#resultado').show(); }); }); </script>
Código PHP:
function selects_filtro_portada(){
$provincia = $_POST["provincia"];
$subzonas = $this->Front->llenar_select_subzonas_filtro($provincia);
$subzonas = $subzonas->result_array();
$localidades = $this->Front->llenar_select_localidades_filtro($provincia);
$localidades = $localidades->result_array();
echo 'Comarca:<br />
<select name="subzona" id="select_subzonas" style="width:150px;">
<option value = "0">Todas</option>';
foreach ($subzonas as $subzona){
$id_subzona = $subzona['id_subzona'];
$nombre_subzona = $subzona['nombre_subzona'];
echo "<option value='$id_subzona'>$nombre_subzona</option>";
}
echo '</select>';
echo '<div style="float:left; margin:7px 0 0 0;">Localidad:<br /></div>
<div id="resultado2">
<select name="localidad" id="select_localidades" style="width:150px;">
<option value = "0">Todas</option>';
foreach ($localidades as $localidad){
$id_localidad = $localidad['id_municipio'];
$nombre_localidad = $localidad['nombre'];
echo "<option value='$id_localidad'>$nombre_localidad</option>";
}
echo '</select></div>';
}
function selects_filtro_portada2(){
$subzona = $_POST["subzona"];
$localidades = $this->Front->llenar_select_localidades_filtro2($subzona);
$localidades = $localidades->result_array();
echo '<select name="localidad" id="select_localidades" style="width:150px;">
<option value = "0">Todas</option>';
foreach ($localidades as $localidad){
$id_localidad = $localidad['id_municipio'];
$nombre_localidad = $localidad['nombre'];
echo "<option value='$id_localidad'>$nombre_localidad</option>";
}
echo '</select>';
}
Código HTML:
<div class="px180" style="height:75px;" id="loading" style="display:none"> Cargando filtros... </div> <div class="px180" style="height:75px;" id="resultado"> </div>