Hola, saludos a todos.
Intento ser breve a mi consulta, tengo 3 combobox dependientes.
El clasico Pais, Provincia y Ciudad. Hasta ahi todo bien.
Lo que no resulta es el intento de que en el tercer combo (ciudad) este me arroje directamente la ciudad sin darme las opciones de elegir cual deseo, ya que solo quiero una ciudad por provincia y que esta se muestre directamente en el tercer combo (ciudad) al elegir una opcion del segundo combo (provincia).
En la BD contengo 3 tablas ( Pais, Provincia, Ciudad)
Aqui el index:
Código HTML:
Ver original<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){
cargar_paises();
$("#pais").change(function(){dependencia_estado();});
$("#estado").change(function(){dependencia_ciudad();});
$("#estado").attr("disabled",true);
$("#ciudad").attr("disabled",true);
});
function cargar_paises()
{
$.get("scripts/cargar-paises.php", function(resultado){
if(resultado == false)
{
alert("Error");
}
else
{
$('#pais').append(resultado);
}
});
}
function dependencia_estado()
{
var code = $("#pais").val();
$.get("scripts/dependencia-estado.php", { code: code },
function(resultado)
{
if(resultado == false)
{
alert("Error");
}
else
{
$("#estado").attr("disabled",false);
document.getElementById("estado").options.length=1;
$('#estado').append(resultado);
}
}
);
}
function dependencia_ciudad()
{
var code = $("#estado").val();
$.get("scripts/dependencia-ciudades.php?", { code: code }, function(resultado){
if(resultado == false)
{
alert("Error");
}
else
{
$("#ciudad").attr("disabled",false);
document.getElementById("ciudad").options.length=1;
$('#ciudad').append(resultado);
}
});
}
dt{font-size:200%;}
dd{font-size:150%;}
<title>Combobox dependientes de Pa
ís, Estado y Ciudad con PHP, MySQL, jQuery y un poco de AJAX
</title>
<select id="pais" name="pais">
<select id="estado" name="estado">
<select id="ciudad" name="ciudad">
Consulta Ciudad:
Código PHP:
Ver original<?php
include("clases/class.mysql.php");
include("clases/class.combos.php");
$ciudades = new selects();
$ciudades->code = $_GET["code"];
$ciudades = $ciudades->cargarCiudades();
foreach($ciudades as $key=>$value)
{
echo "<option value=\"$key\">$value</option>";
}
?>
Consulta BD:
Código PHP:
Ver original<?php
class selects
extends MySQL {
var $code = "";
function cargarPaises()
{
$consulta = parent::consulta("SELECT Name,Code FROM country ORDER BY Name ASC");
$num_total_registros = parent::num_rows($consulta);
if($num_total_registros>0)
{
while($pais = parent::fetch_assoc($consulta))
{
$code = $pais["Code"];
$name = $pais["Name"];
$paises[$code]=$name;
}
return $paises;
}
else
{
return false;
}
}
function cargarEstados()
{
$consulta = parent::consulta("SELECT Name FROM province WHERE Country = '".$this->code."'");
$num_total_registros = parent::num_rows($consulta);
if($num_total_registros>0)
{
while($estado = parent::fetch_assoc($consulta))
{
$name = $estado["Name"];
$estados[$name]=$name;
}
return $estados;
}
else
{
return false;
}
}
function cargarCiudades()
{
$consulta = parent::consulta("SELECT Name FROM city WHERE Province = '".$this->code."'");
$num_total_registros = parent::num_rows($consulta);
if($num_total_registros>0)
{
while($ciudad = parent::fetch_assoc($consulta))
{
$name = $ciudad["Name"];
$ciudades[$name]=$name;
}
return $ciudades;
}
else
{
return false;
}
}
}
?>
Entonces aqui en la ultima consulta a ciudad, deberia de llamar a este combo, directamente la ciudad y no brindar la opcion de seleccionarla.
Espero haber explicado todo correctamente. Cabe aclarar que mis conocimientos son de principiante. Y estare agradecido de cualquier ayuda.
Muchas gracias.