ajax.sql
Código
-- phpMyAdmin SQL Dump -- version 3.1.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tiempo de generación: 11-01-2010 a las 19:38:51 -- Versión del servidor: 5.1.38 -- Versión de PHP: 5.2.8 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de datos: `ajax` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `ciudades` -- CREATE TABLE IF NOT EXISTS `ciudades` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `id_mun` INT(11) NOT NULL, `ciu_nombre` VARCHAR(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ; -- -- Volcar la base de datos para la tabla `ciudades` -- INSERT INTO `ciudades` (`id`, `id_mun`, `ciu_nombre`) VALUES (1, 1, 'Bogota'), (2, 1, 'Girardot'), (3, 1, 'Fusafasuga'), (4, 1, 'Sopo'), (5, 1, 'Chia'), (6, 1, 'Tocaima'), (7, 2, 'Medellin'), (8, 2, 'Envigado'), (9, 2, 'Itagui'), (10, 2, 'Jardin'), (11, 3, 'Neiva'), (12, 3, 'Pitalito'), (13, 3, 'Rivera'), (14, 3, 'Timana'); -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `municipios` -- CREATE TABLE IF NOT EXISTS `municipios` ( `mun_nombre` VARCHAR(20) NOT NULL, `id` INT(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; -- -- Volcar la base de datos para la tabla `municipios` -- INSERT INTO `municipios` (`mun_nombre`, `id`) VALUES ('Cundinamarca', 1), ('Antioquia', 2), ('Huila', 3);
conexion.php
Código
<?php # AUTHOR: 4ng3r # Aplicacion: Select Totalmente Dinamico # URL: http://angercode.wordpress.com # URL: http://foro.project-ric.org # Conexion a la Base de datos function conectar(){ }else{ return FALSE; } } function desconectar(){ } function consulta_Mun($val){ $i=0; $valores[$i]=$row["$val"]; $i++; } return $valores; } ?>
interfaz.php
Código
<?php # AUTHOR: 4ng3r # Aplicacion: Select Totalmente Dinamico # URL: http://angercode.wordpress.com # URL: http://foro.project-ric.org # Interfaz include_once("conexion.php"); if(conectar()){ function cargarMunicipios(){ $nom_M = consulta_Mun("mun_nombre"); $id_M = consulta_Mun("id"); for($i=0;$i<sizeof($nom_M);$i++){ } } ?> <html> <head> <script src="script.js"></script> </head> <body> <div id="independiente"> <?=cargarMunicipios()?> </div> <br> <div id="dependiente"> <select id="ciudades" name="ciudades" disabled="disable"> <option value="0">Elija una Ciudad</option> </select> </div> <br><br> <div id="cargando"></div> <?php } // END IF ?> </select> </body> </html>
script.js
Código
// AUTHOR: 4ng3r // Aplicacion: Select Totalmente Dinamico // URL: http://angercode.wordpress.com // URL: http://foro.project-ric.org // Cargador de Contenido function contenidoXML(){ return XMLHttpRequest(); } // Declaro los compoenentes selects que va a utilizar mi aplicacion // y debe coconrdar con el ID que le pusimos en el HTML var selectsHTML = new Array(); selectsHTML[0]="municipios"; selectsHTML[1]="ciudades"; function cargador(idSelect){ var selectIndependiente=document.getElementById(idSelect); // Seleccionamos el Select que depende al select que le corresponda el id=idSelect var selectDependiente= buscarSelect(selectsHTML,idSelect)+1; var option = selectIndependiente.options[selectIndependiente.selectedIndex].value; // Validamos si el usuario elijio la primero opcion, es decir, Elija un Municipio // y envio un advertencia if(option==0){ // obtengo el Elemento selectD = document.getElementById(selectsHTML[selectDependiente]); // Borro los elementos que hay en el selectD.length=0; var mensaje = document.createElement("option"); mensaje.value=0; mensaje.innerHTML="Debe elegir un Municipio !!!"; // Incrusto el nuevo nodo selectD.appendChild(mensaje) selectD.disabled=true; }else{ // Obtenemos el id del select que debemos cargar var idSelecteD = selectsHTML[selectDependiente]; var selectD = document.getElementById(idSelecteD); var ajax = contenidoXML(); ajax.open("GET","respuesta.php?option="+option,true); ajax.onreadystatechange=function(){ if (ajax.readyState==1){ document.getElementById("cargando").innerHTML="<img src='cargando.gif'>" } if(ajax.readyState==4){ selectD.parentNode.innerHTML=ajax.responseText; document.getElementById("cargando").innerHTML="Consulta Satisfactoria" } } ajax.send(null); } } // Funcion para encontrar si el selec existe function buscarSelect(arreglo , id){ var x=0; while (arreglo[x]){ if(arreglo[x]==id){ return x; } x++; } return null; }
Respuesta.php
Código
<?php # AUTHOR: 4ng3r # Aplicacion: Select Totalmente Dinamico # URL: http://angercode.wordpress.com # URL: http://foro.project-ric.org # Respuesta include('conexion.php'); conectar(); $option = $_GET['option']; $query = "SELECT * FROM ciudades WHERE id_mun=".$option; echo "<select name = 'ciudades' id='ciudades'>"; echo "<option>Elija un Ciudad</option>"; echo "<option value='".$row['id']."'>".$row['ciu_nombre']."</option>"; } echo "</select>"; ?>
DESCARGAR
RESULTADO