alguien sabe como puedo crear las listas dependientes en php
con una base de datos mysql
tengo las siguientes tablas
ciudad y comunas
quiero crear una lista dependiente con estas dos tablas
si alguien sabe gracias
| |||
listas dependientes en php alguien sabe como puedo crear las listas dependientes en php con una base de datos mysql tengo las siguientes tablas ciudad y comunas quiero crear una lista dependiente con estas dos tablas si alguien sabe gracias |
| |||
que tal felipec mira estoy haciendo algo parecido y tengo el siguiente codigo ojala te sirva primero al cargar tu pagina debes llenar el primer combo con una consulta asi mas o menos:--- <html> <head> <title>Asignar</title> </head> <body> <? include "librerias/phpsqlserver.lib"; ?> <form action="" method="post" name="fas"> <label>DIRECCION :</label> <?php $cSql="Select clave from dependencias"; $Res=EjecutaSQL($cSql,$lc_Resultado); ?> <select name="direcbo" size="1" onchange="cargadepto()"> <?php while ($row=mssql_fetch_array($Res)){ ?> <option value="<? $row['clave']; ?> "> <? print $row['clave']; ?> </option> <? } ?> </select> <label>DEPTO. </label> <select name=deptocbo size="1"> <option value="-">- </select> </div></td> <input name="btnComando " type="submit" id='btnComando ' title="click para un nuevo registro" value="Nuevo"> <input name="btnComando" type="submit" class="FontTable" id='btnComando' value="Buscar"> <input name="btnComando" type="submit" class="FontTable" id='btnComando' value="Cancelar"> </form> <script language="javascript1.1"> function cargadepto(){ var i; var i=0; var tam,x; tam=0; var mis_dptos= new Array(); var num_dptos; num_dptos=0; <?php $cSqll="Select ClaveDepto from departamentos"; $Res1=EjecutaSQL($cSqll,$lc_Resultadoo); while ($roww=mssql_fetch_array($Res1)){ ?> mis_dptos[tam]='<?print $roww["ClaveDepto"];?>' tam++; <?php } ?> num_dptos=mis_dptos.length; if (num_dptos>0){ document.fas.deptocbo.length = num_dptos; for(i=0;i<num_dptos;i++){ document.fas.deptocbo.options[i].value=mis_dptos[i] document.fas.deptocbo.options[i].text=mis_dptos[i] }//fin del for }//fin del if else{ document.fas.deptocbo.length = 1 //coloco un guión en la única opción que he dejado document.fas.deptocbo.options[0].value = "-" document.fas.deptocbo.options[0].text = "-" } } </script> </body> </html> ojala te sirva mis conexiones las hago en sql server 2000 pero son parecidas a mysql solo adaptalas ahhhh existe por ahi en errorcillo si te das cuenta que no pongo una condicion en la consulta... eso aun no me queda ojala si sabes de alguien que pueda solucionarlo tambien me mandes un msg.. me seria de gran utilidad |
| |||
gracias no te preocupes ya lo resolvi con este codigo aqui lo subo por si a alguien lo puede ayudar <? $stdout =""; $stdout.="<form name=\"envio\">\n"; //************************************************** ***********************// $stdout.=" <select name='programa' onChange='UpdateRamos();'>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" </select>\n"; //************************************************** ************************// //************************************************** **************************// $stdout.=" <select name='ramo'>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" <option>-------------------------------</option>\n"; $stdout.=" </select>\n"; //************************************************** *************************** $stdout.="</form>"; //************************************************** ************************************// $stdout.="<script TYPE=\"text/javascript\" LANGUAGE=\"JavaScript\">\n"; $result=mysql_query ("SELECT id_programa, nombre FROM programas ORDER BY id_programa"); $total=mysql_num_rows($result); $i=0; $text1 = "Programasdesc = new Array("; $text2 = "Programas = new Array("; $text1.= "\"Elija una programa\","; $text2.= "\"none\","; while ($dat=mysql_fetch_row($result)) { if ($i!=0) { $text1.=", "; $text2.=", "; } $text1.= "\"$dat[1]\""; $text2.= "\"$dat[0]\""; $i=1; } $text1.=")\n"; $text2.=")\n"; $stdout.= $text1; $stdout.= $text2; $stdout.="Ramos = new Object();\n"; $stdout.="Ramosdesc = new Object();\n"; $stdout.="Ramos[\"none\"]= new Array(\"none\");\n"; $stdout.="Ramosdesc[\"none\"]= new Array(\"Elija una Ramo\");\n"; $result=mysql_query ("SELECT id_programa, nombre FROM programas ORDER BY id_programa"); $total=mysql_num_rows($result); for ($i=0;$i<$total;$i++) { $dat=mysql_fetch_row($result); $padre=$dat[1]; $id_padre=$dat[0]; $text1 = "Ramos[\"$id_padre\"] = new Array("; $text2 = "Ramosdesc[\"$id_padre\"] = new Array("; $k=0; $result2=mysql_query ("SELECT id_ramo, nombre FROM ramos WHERE id_programa='$id_padre' ORDER BY nombre"); while ($datos=mysql_fetch_row($result2)) { if ($k!=0) { $text1.=", "; $text2.=", "; } $text1.= "\"$datos[0]\""; $text2.= "\"$datos[1]\""; $k=1; } $text1.=");\n"; $text2.=");\n"; $stdout.= "$text1"; $stdout.= "$text2\n"; } $stdout.= " for (i=0;i<Programas.length;i++) document.forms['envio'].elements[\"programa\"][i] = new Option(Programasdesc[i], Programas[i]);\n"; $stdout.= " document.forms['envio'].elements[\"programa\"].selectedIndex = 0;\n"; $stdout.= " function UpdateRamos() {\n"; $stdout.= " document.forms['envio'].elements[\"ramo\"].length=0;\n"; $stdout.= " country = document.forms['envio'].elements[\"programa\"];\n"; $stdout.= " ccode = new String(country.options[country.selectedIndex].value);\n"; $stdout.= " if (Ramos[ccode]) {\n"; $stdout.= " document.forms['envio'].elements[\"ramo\"][0] = new Option(Ramosdesc[ccode][0], Ramos[ccode][0], 1, 1);\n"; $stdout.= " for (i=1;i<Ramos[ccode].length;i++) document.forms['envio'].elements[\"ramo\"][i] = new Option(Ramosdesc[ccode][i], Ramos[ccode][i]);\n"; $stdout.= " }\n"; $stdout.= " }\n"; $stdout.= " UpdateRamos();\n"; $stdout.= "</script>\n"; echo "$stdout"; ?> |
| |||
Hola, vi el codigo que enviaron de las listas enlazadas, y estuve revisando el último ya arreglado(el de felipec), y bien me sirvio para mi caso, obteniendo los valores de la BD, pero soy nueva en esto y no sé en que parte de ese código capturo los valores, es decir en que variable queda lo que selecciono en la primera lista (programas) y lo de la segunda(ramos)...tengo que usar una lógica luego pero no se donde quedan los valores, si me pueden ayudar se los agradecería......... |