Manuales de JQuery
http://www.desarrolloweb.com/articulos/ejemplo-selectores-jquery.html
<!-- incluimos el plugin (jcombo) y el jquery--> <script type="text/javascript" src="ruta/jquery.js"></script> <script type="text/javascript" src="ruta/jquery.jCombo.min.js"></script>
<!-- configuramos el plugin-->
<script type="text/javascript">
$(function() {
// paises es el primer select a llenar<pre class='brush:xml'>
$("#paises").jCombo("funciones.php?funcion=get_paises",{});
$("#ciudades").jCombo("funciones.php?funcion=get_ciudades&id=",{
parent: "#paises" // combo padre
});
$("#zonas").jCombo("funciones.php?funcion=get_zonas&id=",{
parent: "#ciudades"
});
});
</script>
paises: <select name="paises" id="paises"></select><br/> ciudades: <select name="ciudades" id="ciudades"></select><br/> Zonas: <select name="zonas" id="zonas"></select>
$("select[name='country']").jCombo("get_paises.php");
$("#paises").jCombo("funciones.php?funcion=get_paises",{});
$("#ciudades").jCombo("funciones.php?funcion=get_ciudades&id="{ ...
$("#zonas").jCombo("funciones.php?funcion=get_zonas&id=",{ ...
<?php
// indicamos que la respuesta tendra el formato JSON
//header('Content-type: application/json');
// conexion con la base de datos
include("config.php");
// devuelve en formato JSON los datos para llenar el combo "paises"
function get_paises(){
$query = "SELECT id_country, country_name FROM countries ORDER BY country_name ASC";
$result = mysql_query($query);
$items = array();
if($result && mysql_num_rows($result)>0) {
while($row = mysql_fetch_array($result)) {
$items[] = array( $row[0], $row[1]);
}
}
mysql_close();
// devolvemos datos en formato json
return json_encode($items);
}
// retornamos las ciudades pertenecientes a un deterinado pais (id)
function get_ciudades($id){
if (empty($id) or !is_numeric($id)) return false;
// en este caso se consultan las columnas tal como se van a devolver
$query = "SELECT id_city, city_name FROM cities WHERE id_country = '$id' ORDER BY city_name ASC";
$result = mysql_query($query);
$items = array();
if($result && mysql_num_rows($result)>0) {
while($row = mysql_fetch_array($result)) {
$items[] = array( $row[0], $row[1]);
}
}
mysql_close();
// devolvemos datos en formato json
return json_encode($items);
}
// retornamos las zonas pertenecientes a una deterinada ciudad (id)
function get_zonas($id){
if (empty($id) or !is_numeric($id)) return false;
$query = "SELECT id_zone, zone_name FROM zones WHERE id_city = '$id' ORDER BY zone_name ASC";
$result = mysql_query($query);
$items = array();
if($result && mysql_num_rows($result)>0) {
while($row = mysql_fetch_array($result)) {
$items[] = array( $row[0], $row[1]);
}
}
mysql_close();
// devolvemos datos en formato json
return json_encode($items);
}
// devolvemos solo lo solicitado
switch ($_GET['funcion']){
case 'get_paises':
echo get_paises();
break;
case 'get_ciudades':
echo get_ciudades(!empty($_GET['id'])? intval($_GET['id']) : 0);
break;
case 'get_zonas':
echo get_zonas(!empty($_GET['id'])? intval($_GET['id']) : 0);
break;
default:{ echo 'parametros incorrectos';}
}
?>
Opciones: (configuración del plugin) - parent: elemento SELECT del cual se deben obtener los datos (combo padre). - initial_text: mensaje por defecto al seleccionar una opción. Si se coloca un valor vacío ('') entonces no se mostrará ningún texto. - selected_value: preselecciona el combo en el valor colocado. - parent_value: establece la carga inicial del elemento padre (sólo cuando el elemento está en cascada).
También podría interesarte :