Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/10/2011, 08:07
azaz
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
funcion js que necesita peticiones al servidor

Hola espero que me puedan ayudar con mi problema, es el siguiente, a traves de ajax cambio los valores de un archivo xml, hasta aqui todo va bien pero luego creo una funcion js donde muestro los valores del archivo xml, hasta aqui todo bien, pero lo que no consigo es cuando cambio los valores del archivo xml que la funcion MostrarNombres tambien me los cambie, tendria que hacer una nueva peticion al servidor o algo asin pero no se como crear estas nuevas peticiones cada vez que cambia el archivo xml.

Las funciones que utilizo son estas:
Código Javascript:
Ver original
  1. var procesamiento, xml = null, contador=0;
  2.     function MostrarRegistro() {
  3.             try {
  4.                     document.getElementById("registro").innerHTML ='<p>'+ xml.getElementsByTagName('seccion')[contador].firstChild.nodeValue+'</p>';
  5.                     contador ++;
  6.             }
  7.             catch(e) {
  8.                            document.getElementById("registro").innerHTML = '';
  9.                            contador = 0;
  10.             }
  11.     }
  12.      
  13.     function MostrarNombres() {
  14.             var ajax = objetoAjax();
  15.             ajax.open('get','archivo.xml');
  16.             ajax.onreadystatechange = function() {
  17.                     if(ajax.readyState == 4){
  18.                             if(ajax.status == 200) {
  19.                                     xml=ajax.responseXML;
  20.                                     if(xml.getElementsByTagName('seccion').length > 0)
  21.                                             procesamiento = window.setInterval(MostrarRegistro, 4000);
  22.                             }
  23.                     }
  24.             }
  25.             ajax.send(null);
  26.     }
  27.      
  28.      
  29.     function objetoAjax()   {
  30.             if (window.XMLHttpRequest)
  31.                 _ajax = new XMLHttpRequest();
  32.             else
  33.                 if (window.ActiveXObject)
  34.                     _ajax = new ActiveXObject("Microsoft.XMLHTTP");
  35.                 else
  36.                     _ajax = false;
  37.             return _ajax;
  38.         }
  39.        
  40.     window.onload=MostrarNombres();
  41.      
  42.      
  43.     function pedir(dato) {
  44.         Ajax = objetoAjax();
  45.         Ajax.open("get","recuperar.php?seccion=" + dato, true);
  46.         Ajax.onreadystatechange = function() {
  47.           if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  48.            document.getElementById('recuperar_datos').innerHTML=Ajax.responseText;
  49.             }
  50.          }
  51.          Ajax.send(null);
  52.         }

y en el script donde tengo que mostrar los datos de la funcion MostrarNombres tengo un select con el evento onchange y la funcion pedir(), hasta aqui es lo que me funciona bien, osea que el xml me lo cambia segun la opcion que elija en el select.

seria algo asin:

Código PHP:
Ver original
  1. <head>
  2.             <script type="text/javascript" language="javascript" src="funciones.js"></script>
  3.     </head>
  4.     <body>
  5.     <form method="get">
  6.     <select name="seccion" id="seccion" onchange="pedir(document.getElementById('seccion').value)">
  7.         ...
  8.     </select>
  9.     </form>
  10.        
  11. <div id="recuperar_datos"></div>
  12.      
  13. <div id="registro"></div>

y en el script recuperar.php creo el xml que me cambiara de forma asincronica, en resumen, yo quiero que cuando cambie de forma asincronica el archivo xml, la funcion MostrarNombres que me carga en pantalla actualice sus valores tambien de forma asincronica.

Espero que se me entienda esto y me puedan ayudar a entender como hacerlo, saludos.

Última edición por azaz; 08/10/2011 a las 08:12