A ver si esto te sirve de algo. Te explico. Esto va en una página donde hay un formulario con localidad, provincia, region y pais. Cuando alguno de ellos cambia de genera una llamada AJaX.
  
Código:
 var xmlHttp;
function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
}
function startRequest(xFile) {
	createXMLHttpRequest();
	xmlHttp.onreadystatechange = handleStateChange;
	xmlHttp.open("GET", xFile, true);
	xmlHttp.send(null);
}
function handleStateChange() {
	if(xmlHttp.readyState == 4) {
		if(xmlHttp.status == 200) {
			document.getElementById("Geo").innerHTML = xmlHttp.responseText;
		}
	}
}
function changeGeo(){
	var varUrl, args = changeGeo.arguments;
	if(args.length>0){
		varUrl = args[0] + "?";
		if(args.length>=1){
			varUrl += "pais=" + args[1];
			if(args.length>=2){
				varUrl += "®ion=" + args[2];
				if(args.length>=3){
					varUrl += "&provincia=" + args[3];
					if(args.length>=4){
						varUrl += "&localidad=" + args[4];
					}
				}
			}
		}
		// alert(varUrl);
		document.getElementById('Geo').innerHTML = "Espere...";
		startRequest(varUrl);
	}
}
function changeGeo2(){
	var varUrl, args = changeGeo2.arguments;
	if(args.length>0){
		varUrl = args[0] + "?";
		if(args.length>=1){
			varUrl += "pais=" + extraeValorList(args[1]);
			if(args.length>=2){
				varUrl += "®ion=" + extraeValorList(args[2]);
				if(args.length>=3){
					varUrl += "&provincia=" + extraeValorList(args[3]);
					if(args.length>=4){
						varUrl += "&localidad=" + extraeValorList(args[4]);
					}
				}
			}
		}
		// alert(varUrl);
		document.getElementById('Geo').innerHTML = "Espere...";
		startRequest(varUrl);
	}
}
function extraeValorList(objName){
	if(document.getElementById(objName).options!="indefined"){
		return document.getElementById(objName).options[document.getElementById(objName).selectedIndex].value;
	} else { return ""; }
}
  
Estas dos ultimas funcion (changeGeo2 y extraeValorList) lo uso en la página de respuesta donde en cada onchange de cada select (menos localidad) pongo un onChange="changeGeo2('geo_view.php','pais','region  ','provincia','localidades_nombre') 
El el tag body meto un onload="changeGeo('geo_view.php','Torremolinos','M  alaga','Andalucia','España')" 
Y en la posición de la página donde quiero que aparezca hao un <div id="geo">Espere...</div>  
Me funciona en IE y FF  
Bueno. Espero haber ayudado    
Un saludo