Buenas gente, recurro a uds porque tengo un problema con los datos que me arroja el ultimo select.
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>
Este es el ajax
Código:
$(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");
}
});
});
Y aca hago las consultas para llenar los select.
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 cp tiene id,cod_post,localidad,provincia,seccional
la tabla provincias tiene prov_id,prov_nombre
y la tabla seccionales tiene sec_id,sec_nombre
Gracias