Código HTML:
<script> //defino una serie de varibles Array para cada país <?php require("sql.php"); $prov = mysql_query("SELECT id FROM provincia ORDER BY id DESC", $sql_c) or die ("Problemas al seleccionar las id de las provincias porque: ".mysql_error()); $p = mysql_fetch_array($prov); for($i=1;$i<=$p[0];$i++) { echo 'var provincias_'.$i.'=new Array("Seleccione..."'; $loc = mysql_query("SELECT * FROM localidad", $sql_c) or die ("Problemas al seleccionar las localidades porque: ".mysql_error()); while ($l=mysql_fetch_array($loc)) { if ($l['idprov']==$i) {echo ",\"".$l['nombre']."\"";} else{} } echo ') '; } ?> //función que cambia las provincias del select de provincias en función del país que se haya escogido en el select de país. function cambia_loc(){ //tomo el valor del select del pais elegido var prov prov = document.f1.provincias[document.f1.provincias.selectedIndex].value //miro a ver si el pais está definido if (prov != 0) { //si estaba definido, entonces coloco las opciones de la provincia correspondiente. //selecciono el array de provincia adecuado mis_provincias=eval("provincias_" + prov) //calculo el numero de provincias num_provincias = mis_provincias.length //marco el número de provincias en el select document.f1.localidad.length = num_provincias //para cada provincia del array, la introduzco en el select for(i=0;i<num_provincias;i++){ document.f1.localidad.options[i].value=mis_provincias[i] document.f1.localidad.options[i].text=mis_provincias[i] } }else{ //si no había provincia seleccionada, elimino las provincias del select document.f1.localidad.length = 1 //coloco un guión en la única opción que he dejado document.f1.localidad.options[0].value = "-" document.f1.localidad.options[0].text = "-" } //marco como seleccionada la opción primera de provincia document.f1.localidad.options[0].selected = true } </script> <?php $provs = mysql_query("SELECT * FROM provincia",$sql_c) or die("Problemas al seleccionar las provincias (línea 76): ".mysql_error()); ?> <form id="f1" name="f1" method="post" action="clientes2.php"> <table width="550" border="0" cellpadding="0" cellspacing="3"> <tr> <td align="right">Provincia:</td> <td> <select name="provincias" onchange="cambia_loc()"> <option value="0" selected="selected">Seleccione...</option> <?php while($pr = mysql_fetch_array($provs)) { echo " <option value=\"".$pr['id']."\">".$pr['nombre']."</option> "; } ?> </select> </td> </tr> <tr> <td align="right">Localidad</td> <td> <select name="localidad"> <option value="-">Seleccione la Provincia</option> </select> </td> </tr>
El problema es que funcionaba y después no, así de simple y complicado.
Si ustedes pueden encontrar el error o el problema se los agradecería.