Foros del Web » Programando para Internet » Javascript » Frameworks JS »

problema con onreadystatechange en ie

Estas en el tema de problema con onreadystatechange en ie en el foro de Frameworks JS en Foros del Web. Holas... a ver si me pueden ayudar. Tengo una pagina que carga algunos datos en formato xml desde una pagina php. la pagina php recibe ...
  #1 (permalink)  
Antiguo 24/10/2009, 12:18
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 6 meses
Puntos: 0
problema con onreadystatechange en ie

Holas... a ver si me pueden ayudar.

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>&nbsp;<span id='nomlib'></span></h2>
<span id='autor'></span>

 </BODY>
</HTML> 
todo comentario será bienvenido

saludos

Última edición por janomichi; 26/10/2009 a las 15:38
  #2 (permalink)  
Antiguo 24/10/2009, 14:27
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: problema con onreadystatechange en ie

Navegadores, navegadores...
Yo no veo problema en tu código.
¿ Ya probaste en OTRO equipo con IE7 ?
A veces no es el navegador en sí sino la configuración de éste en un equipo específico.
  #3 (permalink)  
Antiguo 26/10/2009, 12:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: problema con onreadystatechange en ie

mira probe en otro equipo y con el ie6 y tambien me ocurre lo mismo...
¿Alguna otra idea?... pues a mi se me acabaron

gracias jenusys por la opinion

Última edición por janomichi; 26/10/2009 a las 13:08 Razón: agregar texto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:48.