09/08/2011, 14:58
|
| | Fecha de Ingreso: febrero-2010 Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 3 meses Puntos: 16 | |
Respuesta: select dependientes a 3 niveles Código PHP: <?php function generaSelect() { include 'conexion.php'; conectar(); $consulta=mysql_query("SELECT id, nombre FROM pai_pais"); desconectar(); // Voy imprimiendo el primer select compuesto por los paises echo "<select name='select1' id='select1' onChange='cargaContenido(this.id)'>"; echo "<option value='0'>Seleciona uno</option>"; while($registro=mysql_fetch_row($consulta)) { echo "<option value='".$registro[0]."'>".$registro[1]."</option>"; } echo "</select>"; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!-- Este contenido es de libre uso y modificación bajo la siguiente licencia: http://creativecommons.org/licenses/by-nc-sa/2.5/deed.es Sobre el reconocimiento: Todos los códigos han sido realizados con la idea de que sirvan para colaborar con el aprendizage de aquellos que se están introduciendo en estas tecnologías y no con el objetivo de que sean utilizados directamente en sitios web. No obstante si utilizas algún código en tu sitio (ya sea sin modificar o modificado), o si ofreces los fuentes para descargar o si bien decides publicar alguno de los artículos debes cumplir con: -Colocar un link a http://www.formatoweb.com.ar/ajax/ visible por tus usuarios como forma de mención a la fuente original del contenido. -Enviar un correo a [email protected] informando la URL donde el contenido se ha publicado o se va a publicar en un futuro. -Si publicas los fuentes para descargar este texto no debe ser eliminado ni alterado. Más ejemplos y material sobre AJAX en: http://www.formatoweb.com.ar/ajax/ Cualquier sugerencia, crítica o comentario son bienvenidos. Contacto: [email protected] --> <html lang="es"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>AJAX, Ejemplos: Combos (select) dependientes de 3 niveles, codigo fuente - ejemplo</title> <link rel="stylesheet" type="text/css" href="select_dependientes_3_niveles.css"> <script type="text/javascript" src="select_dependientes_3_niveles.js"></script> </head> <body> <div id="demo" style="width:600px;"> <div id="demoDer"> <select disabled="disabled" name="select3" id="select3"> <option value="0">Selecciona opción...</option> </select> </div> <div id="demoMed"> <select disabled="disabled" name="select2" id="select2"> <option value="0">Selecciona opción...</option> </select> </div> <div id="demoIzq"><?php generaSelect(); ?></div> </div> </body> </html> Código PHP: <?php // Array que vincula los IDs de los selects declarados en el HTML con el nombre de la tabla donde se encuentra su contenido $listadoSelects=array( "select1"=>"pai_pais", "select2"=>"provincias", "select3"=>"ciudades" ); function validaSelect($selectDestino) { // Se valida que el select enviado via GET exista global $listadoSelects; if(isset($listadoSelects[$selectDestino])) return true; else return false; } function validaOpcion($opcionSeleccionada) { // Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico if(is_numeric($opcionSeleccionada)) return true; else return false; } $selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"]; if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada)) { $tabla=$listadoSelects[$selectDestino]; include 'conexion.php'; conectar(); $consulta=mysql_query("SELECT id, nombre FROM $tabla WHERE relacion='$opcionSeleccionada'") or die(mysql_error()); $c=mysql_num_rows($consulta); desconectar(); if ($c>0) { // Comienzo a imprimir el select echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>"; echo "<option value='0'>Selecciona uno</option>"; while($registro=mysql_fetch_row($consulta)) { // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion $registro[1]=htmlentities($registro[1]); // Imprimo las opciones del select echo "<option value='".$registro[0]."'>".$registro[1]."</option>"; } echo "</select>"; } else {echo "<select name='".$selectDestino."' id='".$selectDestino."' >"; echo "<option value='0'>No Disponible</option>"; } } ?> |