Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2012, 17:29
pithon
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años
Puntos: 10
funcion javascript con peticiones ajax no funciona en ie

Hola, hos comento un poco lo que deberia hacer el codigo, trata de una funcion que crea un archivo xml segun la opcion elejida en un select, despues creo dos funciones mas una para abrir el xml de forma asincronica y otra para mostrar los nombres en pantalla de los empreados de una empresa con un intervalo de tiempo.

Pero cada vez que llamo a la funcion que me crea el archivo xml con los nuevos datos(me lo crea con los datos de una base de datos) esta funcion a la vez llama a otra funcion para mostrar los empreados en pantalla, el codigo funciona en todos los navegadores menos en ie, muestro codigo por si alguien puede ayudarme.

aqui estan las tres funciones que uso faltaria la de la instancia http request:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function recuperarEmpreados() {
  3.         var http = objetoAjax();
  4.         http.open('get','archivo.xml');
  5.         http.onreadystatechange = function() {
  6.                 if(http.readyState == 4){
  7.                if (http.status==200){
  8.                                 xml=http.responseXML;
  9.                                 if(xml.getElementsByTagName('empreado').length > 0){
  10.                     datosEmpreados();
  11.                                 }
  12.                          }
  13.                 }
  14.         }
  15.         http.send(null);
  16. }
  17. var pos = 0;
  18. function datosEmpreados(){
  19.     if(xml.getElementsByTagName('empreado').length>0){
  20.      document.getElementById("empreados").innerHTML ='<p>'+xml.getElementsByTagName('empreado')[pos].firstChild.nodeValue+'</p>';
  21.     pos++;
  22.   if(pos>=(xml.getElementsByTagName('title').length)){pos = 0}
  23.     }
  24. }
  25. window.onload = recuperarEmpreados;
  26. setInterval(datosEmpreados,1000);
  27.  
  28. function recuperarXML(dato) {
  29.    var peticion=objetoAjax();
  30.    peticion.open("get","recuperar_datos.php?seccion=" + dato , true);
  31.    peticion.onreadystatechange = function() {
  32.       if (peticion.readyState == 4 && (peticion.status == 200 || peticion.status == 501)){
  33.           document.getElementById('recuperar').innerHTML=peticion.responseText;
  34.           recuperarEmpreados();
  35.      
  36.       }
  37.    }
  38. peticion.send(null);
  39. }
  40. </script>

aqui el archivo php con el select y los div donde me tiene que mostrar los datos y recuperar el xml de forma asincronica:

Código HTML:
Ver original
  1.     <select id='seccion' onchange='recuperarXML(document.getElementsById("seccion").value)'>
  2.         <option value='administracion'>administracion</option>
  3.         <option value='comercial'>comercial</option>
  4.         <option value='taller'>taller</option>
  5.     </select>
  6. </form>
  7. <div id="recuperar"></div>
  8. <div id='empreados'></div>

El error que me da ie es que xml no esta definido esta linea:

if(xml.getElementsByTagName('empreado').length>0){

Espero que los espertos en javascript puedan ayudarme, saludos.

Última edición por pithon; 16/01/2012 a las 17:41