Buenas.
Tengo un problema con un combobox en el que deseo cargar los municipios según la provincia que se ha escogido en otro combobox. El caso es que en Internet Explorer 6 me funciona perfectamente, pero al ejecutarlo en firefox, éste se cierra y no tengo ni idea de porqué.
Les dejo el código PHP y javascript que genera el combobox de los municipios.
Código PHP:
<?php
/*
Esta funcion puede ser llamada desde distintos formularios, por eso se le pasa
el nombre del formulario y el objeto que llama a esta función
nuevo_anunc es el formulario que corresponde a la inserción de un nuevo
anuncio. En este caso me funciona perfectamente. El problema reside en un
anuncio ya creado, que queremos modificar.
A partir de $sql = "select id_anuncio from anuncios limit $from,$max_results";.....
es donde debe estar el fallo
*/
echo ("
function mostrarMunicipios(selObj,nombre_form)
{
");
$tablaprovincias = mysql_query("SELECT id,prov FROM provincias ORDER BY prov ASC",$link);
$numProvincias = 0;
$arrayProvincias = array();
$arrayMunicipios = array();
$numMunicipios = 0;
echo ("
switch (nombre_form)
{
case 'nuevo_anunc':
switch(selObj.options[selObj.selectedIndex].value)
{
case '-1': document.forms.nuevo_anunc.selectmunicipio.options.length=1; break;
");
while ($registroprovincia = mysql_fetch_array($tablaprovincias)) {
$arrayProvincias[$numProvincias++] = $registroprovincia;
echo ("case '".$registroprovincia['id']."': ");
$tablamunicipios = mysql_query("SELECT id,municipio FROM municipios WHERE id_provincia = ".$registroprovincia['id']." ORDER BY municipio ASC",$link);
$municipios=1;
echo ("document.forms.nuevo_anunc.selectmunicipio.options.length=0; document.forms.nuevo_anunc.selectmunicipio.options[0] = new Option('Seleccione un municipio',-1); ");
while ($registromunicipio = mysql_fetch_array($tablamunicipios)) {
echo "document.forms.nuevo_anunc.selectmunicipio.options[".$municipios++."] = new Option('".pon_barra($registromunicipio['municipio'])."','".$registromunicipio['id']."'); ";
//echo ('document.forms.nuevo_anunc.selectmunicipio.options['.$municipios++.'] = new Option("'.pon_barra($registromunicipio['municipio']).'","'.$registromunicipio['id'].'");');
} // termina la zona de repeticion
echo (" break; ");
} // termina la zona de repeticion
echo ("
} break;
");
$sql = "select id_anuncio from anuncios limit $from,$max_results";
$result = mysql_query($sql,$link);
while ($row = mysql_fetch_array($result))
{
echo ("case 'id_".$row['id_anuncio']."': switch(selObj.options[selObj.selectedIndex].value){ case '-1': document.forms.id_".$row['id_anuncio'].".selectmunicipio.options.length=1; break; ");
foreach($arrayProvincias as $registroprovincia) {
//echo ("alert('entra');");
echo (" case '".$registroprovincia['id']."': ");
// Recuperamos subcategorías
//echo (" alert('entra while'); ");
$tablamunicipios = mysql_query("SELECT id,municipio FROM municipios WHERE id_provincia = ".$registroprovincia['id']." ORDER BY municipio ASC",$link);
$municipios=1; // para subcategoria todas
// Para limpiar las subcategorías que haya en el select
echo ("document.forms.id_".$row['id_anuncio'].".selectmunicipio.options.length=0; document.forms.id_".$row['id_anuncio'].".selectmunicipio.options[0] = new Option('Seleccione su municipio',-1); ");
while ($registromunicipio = mysql_fetch_array($tablamunicipios)) {
// Cambiar nombre para cada formulario
echo ("document.forms.id_".$row['id_anuncio'].".selectmunicipio.options[".$municipios++."] = new Option('".pon_barra($registromunicipio['municipio'])."','".$registromunicipio['id']."'); ");
} // termina la zona de repeticion
echo (" break; ");
} // termina la zona de repeticion
echo (" } break; ");
}
//$cadena = "entra default";
//echo ("default: alert('".$entra."')");
echo (" } ");
mysql_free_result($tablamunicipios); // se libera la memoria usada por la tabla
mysql_free_result($tablaprovincias); // se libera la memoria usada por la tabla
echo (" } ");
?>
Espero que puedan ayudarme. Si descubro donde estaba el error lo publicaré. Muchas gracias