Tengo una pagina que carga algunos datos en formato xml desde una pagina php.
la pagina php recibe como parametro un id, y el archivo xml que genera contiene los datos de tal campo.
funciona bien en todos los navegadores que he probado, pero en IE7 (y en IE6 también) solo funciona la primera vez, la "segunda" llamada a onreadystatechange no se hace.
este es el codigo de mi pagina:
Código PHP:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
var xmlhttp=getXmlHttp();
function seleccionaLibro(codlib){
//alert(codlib);//esta parte la pasa el ie
if(xmlhttp){
var url="bdatos.php";
url=url+"?q="+codlib+"&r="+Math.random();
//alert("antes");
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
//alert("despues");
}
}
function stateChanged(){
var xmlDoc;
var libros;
//alert("en stateChanged" + xmlhttp.readyState);//esta parte la segunda vez no entra el ie
if (xmlhttp.readyState==1){
document.getElementById("estado").innerHTML="Cargando...";
}
if (xmlhttp.readyState==4){
document.getElementById("estado").innerHTML="Listo!";
xmlDoc = xmlhttp.responseXML;
libros = xmlDoc.getElementsByTagName("libro");
//alert(libros[0].getElementsByTagName("codlib")[0].childNodes[0].nodeValue);
document.getElementById("codlib").innerHTML=libros[0].getElementsByTagName("codlib")[0].childNodes[0].nodeValue;
document.getElementById("nomlib").innerHTML=libros[0].getElementsByTagName("nomlib")[0].childNodes[0].nodeValue;
document.getElementById("autor").innerHTML=libros[0].getElementsByTagName("autor")[0].childNodes[0].nodeValue;
}
}
function getXmlHttp(){
var xmlhttp = false;
if (window.XMLHttpRequest){
// codigo para IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject){
// codigo para IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else{
alert("Su navegador no soporta XMLHTTP!");
}
return xmlhttp;
}
</script>
</HEAD>
<BODY>
<form>
Selecciona libro:
<select name="users" onchange="seleccionaLibro(this.value)">
<optgroup label='Elija un libro'>
<option value="ACC01">Fundacion</option>
<option value="ACC02">El Fin De La Eternidad</option>
<option value="ACC03">La Maquina Del Tiempo</option>
<option value="ACC04">HighLander</option>
<option value="ACC05">La Comunidad del Anillo</option>
<option value="ACC06">HP: La Piedra Filosofal</option>
</optgroup>
</select>
</form>
<span id='estado'></span>
<h2><span id='codlib'></span> <span id='nomlib'></span></h2>
<span id='autor'></span>
</BODY>
</HTML>
saludos