Se trata de un script que se dispara con el evento onchange de un select que contiene las provincias de España:
onchange="CargaLocalidades(this.value,'selectLocal idad');"
La función trata de cargar en el siguente select los municipios según sea la selección de la provincia en el select inicial.
El 2ª parámetro es el id del select donde se cargarán las localidades de la provincia elegida
Los datos de los municipios los extraigo de la respuesta que entrega la función ajax, a la que se llama con otra función copiada de estos mismos foros:
Código PHP:
function XMLHttp(){
var Object;
if (typeof XMLHttpRequest == "undefined" ) {
if(navigator.userAgent.indexOf("MSIE 5") >= 0) {
Object= new ActiveXObject("Microsoft.XMLHTTP");
} else {
Object=new ActiveXObject("Msxml2.XMLHTTP");
}
} else {
Object=new XMLHttpRequest();
}
return Object;
}
function CargaLocalidades(valor,obj){
var ajax2 = XMLHttp();
var provincia = valor;
var oCntrl = document.getElementById(obj);
oCntrl.options.length = 0;
var selOpcion = new Option("BUSCANDO...", "0");
var iPos = oCntrl.options.length;
oCntrl.options[iPos] = selOpcion;
ajax2.open("GET","ajax/charge_loc.php?prov=" + provincia, true);
ajax2.onreadystatechange=function(){
if(ajax2.readyState==4) {
var respuesta=ajax2.responseText;
var pos = respuesta.indexOf("#");
var ind = respuesta.indexOf("|");
var i = 1;
oCntrl.options.length = 0;
var selOpcion = new Option("<Seleccione Localidad>", "0");
var iPos = oCntrl.options.length;
oCntrl.options[iPos] = selOpcion;
while(pos!=-1){
var municipio;
municipio = respuesta.substring(0,pos);
indice = respuesta.substring(pos+1,ind);
selOpcion = new Option(municipio.toUpperCase(), indice);
iPos = oCntrl.options.length;
oCntrl.options[iPos] = selOpcion;
i++;
var auxiliar1 = respuesta.substring(ind+1);
respuesta = auxiliar1;
pos = respuesta.indexOf("#");
ind = respuesta.indexOf("|");
}
}
}
ajax2.send(null);
}
.....NOMBRE_MUNICIPIO#ID_MUNICIPIO|......
Es decir, usando los carácteres especiales # y | para separar un campo de otro.
Alguien puede arrojarme algo de luz a lo que está pasando.
Gracias