Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2009, 10:52
MauXXI
 
Fecha de Ingreso: junio-2008
Mensajes: 51
Antigüedad: 16 años, 8 meses
Puntos: 2
Pregunta La función no funciona sin razón

Tengo el siguiente la siguiente función dentro de <body>
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 código trata de que tengo una lista de provincias que al seleccionar una opción en la lista localidad aparecen todas las localidades correspondientes a esa provincia.

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.