Estoy haciendo 4 select dependientes de Codigo postal, localidad, provincia y seccional. Hasta provincia voy bien pero la seccional me la devuelve mal.
Les paso el codigo para que vean a ver si me pueden ayudar porque hace dias que llevo con esto y no puedo resolverlo.
Gracias
Este es el formulario
Código PHP:
<div class="label"><label><strong>Código Postal </strong>*</label>
<select id="cp_nombre">
<option value="">Codigo Postal</option>
<?php while($r=mysql_fetch_array($cp)){
echo "<option value = ".$r['id'].">".$r['cod_post']."</option>";} ?>
</select>
</div>
<div class="label"><label><strong>Localidad </strong>*</label>
<select id="localidad" disabled="disabled"></select>
<img id="imglocalidad" style="display: none;" src="imagenes/loading.gif" alt="Cargando" />
</div>
<div class="label"><label><strong>Provincia </strong>*</label>
<select id="provincia" disabled="disabled"></select>
<img id="imgprovincia" style="display: none;" src="imagenes/loading.gif" alt="Cargando" />
</div>
<div class="label"><label><strong>Seccional </strong>*</label>
<select id="seccional" disabled="disabled"></select>
<img id="imgseccional" style="display: none;" src="imagenes/loading.gif" alt="Cargando" />
</div>
Código:
Y aca hago las consultas para llenar los select.$(document).ready(function(){ $("#cp_nombre").change(function(){ $("#localidad").empty().attr("disabled","disabled"); $("#provincia").empty().attr("disabled","disabled"); $("#seccional").empty().attr("disabled","disabled"); if($(this).val()!=""){ var dato=$(this).val(); $("#imglocalidad").show(); $.ajax({ type:"POST", dataType:"html", url:"action.php", data:"id="+dato+"&tarea=listLocalidad", success:function(msg){ $("#localidad").removeAttr("disabled").append(msg); $("#imglocalidad").hide(); } }); }else{ $("#localidad").empty().attr("disabled","disabled"); $("#provincia").empty().attr("disabled","disabled"); } }); $("#localidad").change(function(){ if($(this).val()!=""){ var dato=$(this).val(); $("#imgprovincia").show(); $.ajax({ type:"POST", dataType:"html", url:"action.php", data:"prov_id="+dato+"&tarea=listProvincia", success:function(msg){ $("#provincia").empty().removeAttr("disabled").append(msg); $("#imgprovincia").hide(); } }); }else{ $("#provincia").empty().attr("disabled","disabled"); } }); $("#provincia").change(function(){ if($(this).val()!=""){ var dato=$(this).val(); $("#imgseccional").show(); $.ajax({ type:"POST", dataType:"html", url:"action.php", data:"sec_id="+dato+"&tarea=listSeccional", success:function(msg){ $("#seccional").empty().removeAttr("disabled").append(msg); $("#imgseccional").hide(); } }); }else{ $("#seccional").empty().attr("disabled","disabled"); } }); });
Código PHP:
<?php
include("configuracion.inc.php");
$link=conectar($bd_host,$bd_usuario,$bd_pwd,$bd_nombre);
function getLocalidad(){
global $link;
$sql="select * from cp where id=".$_POST["id"];
$result=mysql_query($sql,$link);
$resp="";
if($result){
if(mysql_num_rows($result)>0){
$resp.="<option value=''>- Seleccione Localidad -</option>";
while($r=mysql_fetch_object($result)){
$resp.="<option value='".$r->provincia."'>".$r->localidad."</option>";
}
}else $resp.="<option value=''>- Seleccione Localidad -</option>";
}else $resp="ERROR";
echo $resp;
}
function getProvincias(){
global $link;
$sql="select * from provincias where prov_id=".$_POST["prov_id"];
$result=mysql_query($sql,$link);
$resp="";
if($result){
if(mysql_num_rows($result)>0){
$resp.="<option value=''>- Seleccione Provincia -</option>";
while($r=mysql_fetch_object($result)){
//$resp.="$r->idprovincia".$r->nombre_ciudad."";
$resp.="<option value='".$r->prov_id."'>".$r->prov_nombre."</option>";
}
}else $resp="<option value=''>- Seleccione Provincia -</option>";
}else $resp="ERROR";
echo $resp;
}
function getSeccional(){
global $link;
$sql="select * from seccionales where sec_id=".$_POST["sec_id"];
$result=mysql_query($sql,$link);
$resp="";
if($result){
if(mysql_num_rows($result)>0){
$resp.="<option value=''>Seleccione Seccional</option>";
while($r=mysql_fetch_object($result)){
$resp.="<option value='".$r->sec_id."'>".$r->sec_nombre."</option>";
}
}else $resp="<option value=''>Seleccione Seccional</option>";
}else $resp="ERROR";
echo $resp;
}
if($_POST)
{
switch($_POST["tarea"]){
case "listLocalidad":getLocalidad();
break;
case "listProvincia":getProvincias();
break;
case "listSeccional":getSeccional();
break;
}
}
?>
la tabla provincias tiene prov_id,prov_nombre
y la tabla seccionales tiene sec_id,sec_nombre
Gracias