Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2012, 13:25
Avatar de Nico0601
Nico0601
 
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Select dependiente

Buenas gente, es mi primera vez! En el foro! ja! El tema es el siguiente:
Tengo un select dependiente donde ingreso el Codigo Postal y me va tirando la localidad, provincia y seccional. El problema es que la provincia y seccional me tira cualquier cosa.
Tengo 3 archivos que hace esto, el html, un js y otro php.
Los pego aca a ver si lo pueden ver...
EL HTML PRIMERO.....
<body>
<div id="muestra">
<form action="">
<div>
<label>Codigo Postal: </label>
<select id="cp">
<option value="">Seleccione C.P.</option>
<?php while($r=mysql_fetch_array($c)){
echo "<option value=".$r['id_cod'].">".$r['cod_post']."</option>";
} ?>
</select>
</div>
<div>
<label>Localidad: </label>
<select id="localidad" disabled="disabled"> </select>
<img id="imglocalidad" style="display: none;" src="loading.gif" alt="Cargando" />
</div>
<div>
<label>Provincia: </label>
<select id="provincia" disabled="disabled"> </select>
<img id="imgprovincia" style="display: none;" src="loading.gif" alt="Cargando" />
</div>
<div>
<label>Seccional: </label>
<select id="seccional" disabled="disabled"> </select>
<img id="imgseccional" style="display: none;" src="loading.gif" alt="Cargando" />
</div>
<button id="enviar">Enviar</button>
</form>

</div>
</body>

AHORA EL JS.....

$(document).ready(function(){
$("#cp").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_cod="+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:"id_prov="+dato+"&tarea=listProvincia",
success:function(msg){
$("#provincia").empty().removeAttr("disabled").app end(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:"id_secc="+dato+"&tarea=listSeccional",
success:function(msg){
$("#seccional").empty().removeAttr("disabled").app end(msg);
$("#imgseccional").hide();
}
});
}else{
$("#seccional").empty().attr("disabled","disabled" );
}
});
});

Y EL PHP.....

<?php

include("configuracion.inc.php");
//$link=mysql_connect($server,$usuario,$clave);//me conecto al servidor

function getLocalidad(){
global $link;
$sql="select * from cod_post where id_cod=".$_POST["id_cod"];
$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->id_cod."'>".$r->localidad."</option>";
}
}else $resp.="<option value=''>Seleccione Localidad</option>";
}else $resp="ERROR";
echo $resp;
}

function getProvincia(){
global $link;
$sql="select * from provincia where id_prov=".$_POST["id_prov"];
$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->id_prov".$r->nombre_prov."";
$resp.="<option value='".$r->id_prov."'>".$r->nombre_prov."</option>";
}
}else $resp="<option value=''>Seleccione Provincia</option>";
}else $resp="ERROR";
echo $resp;
}
function getSeccional(){
global $link;
$sql="select * from seccionales where id_secc=".$_POST["id_secc"];
$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->id_secc."'>".$r->seccional."</option>";
}
}else $resp="<option value=''>Seleccione Seccional</option>";
}else $resp="ERROR";
echo $resp;
}
if($_POST){
switch($_POST["tarea"]){
case "listLocalidad":getLocalidad();
break;
case "listProvincia":getProvincia();
break;
case "listSeccional":getSeccional();
break;
}
}
?>

La base se llama cp y tiene tres tablas: cod_post, provincia y seccionales
en cod_post tengo id_cod cod_post localidad provincia seccional
en provincia tengo id_prov nombre_prov
y en seccionales tengo id_secc seccional

Espero puedan ayudarme!
Graciassss
__________________
Nico...