Ver Mensaje Individual
  #11 (permalink)  
Antiguo 03/09/2007, 04:17
LKS
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
Antigüedad: 16 años, 8 meses
Puntos: 0
Problema combobox dinámico en firefox

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