Bueno muchachos como ya ustedes me han sacado de apuros en muchisisisimas ocasiones recurro nuevamente a ustedes para que me tiren un datico de que puedo estar haciendo mal otra vez... esto de ser medio lentejo para esto si es bochornoso ....
Bueno el caso es que Martín Iglesias... un programador de verdad... ha puesto en su blog un selector dependiente de tres niveles... perfecto.. con los fuentes que otorga y una pequeñisimas modificaciones anda a las mil maravillas...
He tomado su codigo y lo he acoplado a lo que necesito.. pero, Cuando lo pongo a funcionar con mis datos no me muestra la herencia sobre el tercer select...
Pense "es un decir no.." que podria se que los tipos de datos influirian por esta razon los monte todos tipo float....Siiiiii ya se que loco... pero bueno con intentar no se perdia nada.."bueno tal vez un poco mas de cabello.. "en fin.. nada.. estoy realmente enfrascado en este tema y no quiero seguir adelante hasta tanto no pueda solucionar este error.. aca va el codigo de Martin Iglesias...
Este es el Index
Código PHP :
<?php function idpadre($nombre,$valor) { include("config.inc.php"); $query = "SELECT * from padre order by padre"; mysql_select_db($dbname); $result = mysql_query($query); echo "<select name='$nombre' id='$nombre'>"; echo "<option value=''>Selecciona un Padre...</option>"; while($registro=mysql_fetch_array($result)) { echo "<option value='".$registro["idpadre"]."'"; if ($registro["idpadre"]==$valor) echo " selected"; echo ">".$registro["padre"]."</option>\r\n"; } echo "</select>"; } function idhijo($nombre,$valor) { include("config.inc.php"); $query = "SELECT * FROM hijo order by hijo"; mysql_select_db($dbname); $result = mysql_query($query); echo "<select name='$nombre' id='$nombre'>"; echo "<option value=''>Selecciona un Hijo...</option>"; while($registro=mysql_fetch_array($result)) { echo "<option value='".$registro["idhijo"]."'"; if ($registro["idhijo"]==$valor) echo " selected"; echo ">".$registro["hijo"]."</option>\r\n"; } echo "</select>"; } function idnieto($nombre,$valor) { include("config.inc.php"); $query = "SELECT * FROM nieto order by nieto"; mysql_select_db($dbname); $result = mysql_query($query); echo "<select name='$nombre' id='$nombre'>"; echo "<option value=''>Selecciona un Nieto...</option>"; while($registro=mysql_fetch_array($result)) { echo "<option value='".$registro["idnieto"]."'"; if ($registro["idnieto"]==$valor) echo " selected"; echo ">".$registro["nieto"]."</option>\r\n"; } echo "</select>"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" /> <title>Ejemplo de Combobox o Select Dependientes con PHP y Jquery | Martin Iglesias</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { /* COMBOBOX */ $("#idpadre").change(function(event) { var idpadre = $(this).find(':selected').val(); $("#pidhijo").html("<img src='loading.gif' />"); $("#pidhijo").load('combobox.php?buscar=hijos&idpadre='+idpadre); var idhijo = $("#idhijo").find(':selected').val(); $("#pidnieto").html("<img src='loading.gif' />"); $("#pidnieto").load('combobox.php?buscar=nietos&idhijo='+idhijo); }); $("#idhijo").live("change",function(event) { var id = $(this).find(':selected').val(); $("#pidnieto").html("<img src='loading.gif' />"); $("#pidnieto").load('combobox.php?buscar=nietos&idhijo='+id); }); }); </script> <style> select{padding:5px;border:1px solid #bbb;border-radius:5px;margin:5px 0;display:block;box-shadow:0 0 10px #ddd} #resultados{margin:20px 0;padding:20px;border:10px solid #ddd;} </style> </head> <body> <h1>Ejemplo de Combobox o Select Dependientes con PHP y Jquery | Martin Iglesias</h1> <p> <strong>Nota:</strong> Para nuestro ejemplo, utilizamos 3 selects. Vamos a preasignar valores. padre=1, hijo=2, nieto=3</p> </p> <div id="resultados"> <?php if (isset($_POST)) print_r($_POST); ?> </div> <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <fieldset> <p><label>Padre:</label><?php idpadre("idpadre","1"); ?></p> <p id="pidhijo"><label>Hijo:</label><?php idhijo("idhijo","2"); ?></p> <p id="pidnieto"><label>Nieto:</label><?php idnieto("idnieto","3"); ?></p> <p><input type="submit" name="submit" value="Mostrar resultados" /></p> </fieldset> </form> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-266167-20"); pageTracker._setDomainName(".martiniglesias.eu"); pageTracker._trackPageview(); } catch(err) {}</script> </body> </html>
Y este el Combobox
Código PHP :
<?php include 'config.inc.php'; $valoractual=0; if ($_GET["buscar"]=="hijos") { $consulta="SELECT * FROM hijo WHERE idpadre='".mysql_real_escape_string(intval($_GET["idpadre"]))."' order by hijo"; mysql_select_db($dbname); $todos=mysql_query($consulta); // Comienzo a imprimir el select echo "<label>Hijo:</label><select name='idhijo' id='idhijo'>"; echo "<option value=''>Selecciona un Hijo...</option>"; while($registro=mysql_fetch_array($todos)) { // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion // Imprimo las opciones del select echo "<option value='".$registro["idhijo"]."'"; if ($registro["idhijo"]==$valoractual) echo " selected"; echo ">".utf8_encode($registro["hijo"])."</option>"; } echo "</select>"; } if ($_GET["buscar"]=="nietos") { $consulta="SELECT * FROM nieto WHERE idhijo='".mysql_real_escape_string(intval($_GET["idhijo"]))."' order by nieto"; mysql_select_db($dbname); $todos=mysql_query($consulta); // Comienzo a imprimir el select echo "<label>Nieto:</label><select name='idnieto' id='idnieto'>"; echo "<option value=''>Selecciona un Nieto...</option>"; while($registro=mysql_fetch_array($todos)) { // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion // Imprimo las opciones del select echo "<option value='".$registro["idnieto"]."'"; if ($registro["idnieto"]==$valoractual) echo " selected"; echo ">".utf8_encode($registro["nieto"])."</option>"; } echo "</select>"; } ?>
Este el enlace a la base de datos...
Código PHP :
<?php $dbhost="localhost"; $dbname="combobox"; $dbuser="root"; $dbpass=""; $db = mysql_connect($dbhost,$dbuser,$dbpass); ?>
Esta es la estructura de la base de datos...
Tabla Hijo
idhijo idpadre hijo
125001000231 25001 INSTITUCIÓN EDUCATIVA DEPARTAMENTAL SALESIANO MIG...
125019000386 25019 INSTITUCIÓN EDUCATIVA DEPARTAMENTAL GENERAL CARLOS...
125035000159 25035 INST. EDUC. JULIO CESAR SANCHEZ SEDE 1
Tabla Padre
idpadre Provincia padre
25001ALTO MAGDALENA
AGUA DE DIOS