Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/09/2003, 01:41
Avatar de KarlanKas
KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61


Pensando pensando, pensé en una forma de hacerlo sin tener que cargar de primeras todas las localidades. Y he llegado a esta conclusión. Creo que sólo funciona en IE, pero todo es probar. Consiste en tener una lista de archivos js con el nombre de cada una de las provincias (madrid.js, barcelona.js...) y dentro de cada uno habría un array llamado localidad con todas las localidades de cada una de esas provincias. Algo así:

En Madrid.js sería

localidad=["Alcalá de Henares","villaescusa del sordete", Madrid", "Getafe", "móstoles"...]

En Barcelona.js sería

localidad=["Barcelona","Splugat de Llbregat","casa Tarradellas",...]

Luego en la página habría 2 selects, seleccionando el array con las localidades y generándose el segundo según la elección del primero. El código sería algo así

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
    <
script id="pepe"></script>
    <script>
    
    function segundo(primero){
    textoSegundo="<select name='localidades'>";
    document.getElementById("pepe").src=primero+".js";
    for(a=0;a<localidad.length;a++){
    textoSegundo+="<option value='"+localidad[a]+"'>"+localidad[a]+"</option>";
    }
    textoSegundo+="</select>";
    document.getElementById("segundin").innerHTML=textoSegundo;

    }
    
    </script>
    
</head>

<body><form>
<select name="provincia" size="1" onchange="segundo(this.value)">
                        <option value="1" SELECTED>Este es el 1</option>
                        <option value="2">Este es el 2</option>
                        <option value="3">Este es el 3</option>
                        <option value="4">Este es el 4</option>
                        <option value="5">Este es el 5</option>
</select>
<span id="segundin"><select disabled>
<option>Seleccione Provincia</option>
</select></span>

</form>

</body>
</html> 

Lo he hecho con números, pero como supondreis se puede hacer con cualquier cosa. En este ejemplo el archivo 1.js sería:
Código PHP:
localidad=["01","11","21","31"]; 

el 2.js:
Código PHP:

localidad
=["02","12","22","32"]; 

Etc.

No sé si ha quedado claro. Lo he hecho en JS porque según parece buscas que sea inmediato y que no haya que cargar la página de nuevo. Como PHP no está "orientado a eventos" habría que mandar la selección al servidor, que viese la selección, montase el select y volver a mostrar la página. Esto es más rápido y el efecto es el mismo. En cualquier caso mis conocimientos de PHP son bastante limitados, por lo que tal vez se pueda hacer y alguien me contradiga. Si es así pues fenomenal porque todos aprenderemos algo.

Un saludo y traslado tu pregunta a JS!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.