... estaba a mitad de escribir el mail y toqué ctrl+enter... gracias, Gmail ;[
Decía...
<select name="pais" id="dropdown_paises">
<option> ... </option>
</select>
<select name="equipo" id="dropdown_equipos" enabled="false">
</select>
<select name="equipo" id="dropdown_jugadores" enabled="false">
</select>
<script src="sitio.js"></script>
y en el JS..
document.getElementById("dropdown_paises").onchange = function (select) {
var opcion = select.options[select.selectedIndex].value;
var xmlhttp; /*...*/
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("dropdown_equipos").html =
xmlhttp.responseText;
/* Aunque, como dije, yo preferiría cambiar lo de .html =
... por JSON.parse(...) y generar los OPTIONs que corresponda */
}
}
xmlhttp.open("GET","lista_sf_1.php?q=" + opcion, true);
};
Y lo mismo para dropdown_equipos: le asociás a su .onchange una
función donde maneja lo que tenga que hacer para pedir los jugadores y
actualizar dropdown_jugadores.
La función que maneja el evento de onchange es anónima, así que no te
preocupás por tener funciones con el mismo nombre... o bien podríás
ponerle un nombre único, como equipos_onchange y decir
`...paises").onchange = paises_onchange`... digamos, ponele un nombre
más claro que "load".
(Aviso obvio: no lo testeé; usalo de guía pero sabiendo que seguro no
funciona como lo puse.)
Otra cosa que tenés que tener cuidado con como lo escribiste es que,
como estás reemplazando el contenido del div, creaste un nuevo select,
y borraste el handler que tenía asociado. Al cambiar solo el contenido
del select, el handler sigue siendo parte del select aunque borres los
options. La otra es que hagas que el handler de paises, cuando pone el
contenido en los equipos, vuelva a asociarle el handler.