Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/12/2010, 23:05
xziolhvinvhgl
 
Fecha de Ingreso: marzo-2010
Mensajes: 68
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con actualizacion de divs

en realidad si hay algo que no hiciste... se trata de la sig. parte

if(document.getElementById("txtOculto").value != RequestObject.responseText){
//llenas el div;
}

veo que colocaste esta porcion del codigo pero en la parte "//llenas el div;" no colocaste nada!! alli es donde vas a realizar el segundo llenado dependiendo de los valores almacenados en el campo con respecto a los traidos con AJAX...

el codigo seria algo asi:

Código Javascript:
Ver original
  1. <script type='text/javascript'>
  2. var RequestObject = false;
  3. if (window.XMLHttpRequest) //
  4.      RequestObject = new XMLHttpRequest();
  5. if (window.ActiveXObject)
  6.      RequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  7.  
  8. //PRIMERA LLAMADA
  9. function llamada_uno(){
  10.      with(RequestObject ){
  11.           open("POST","mostrandocontenido1.php",true);
  12.           setRequestHeader("Content-type","application/x-www-form-urlencoded");
  13.           send(null); //null si no estas enviando datos
  14.          
  15.           onreadystatechange = function(){
  16.                 if((readyState == 4) && (status == 200)){
  17.                       var resp = responseText;
  18.                       if(resp != ""){
  19.                             document.getElementById("txtOculto").value = resp;
  20.                             document.getElementById("2").innerHTML = resp;
  21.                       }
  22.                 }
  23.           }
  24.      }
  25. }
  26.  
  27. //AHORA LA LLAMADA DOS QUE ES LA QUE SE REPITE CONSTANTEMENTE
  28. function llamada_dos(){
  29.        with(RequestObject ){
  30.           open("POST","mostrandocontenido1.php",true);
  31.           setRequestHeader("Content-type","application/x-www-form-urlencoded");
  32.           send(null); //null si no estas enviando datos
  33.          
  34.           onreadystatechange = function(){
  35.                 if((readyState == 4) && (status == 200)){
  36.                       var resp = responseText;
  37.                       if(resp != ""){
  38.                             //AQUI ESTA LA MAGIA
  39.                             if(document.getElementById("txtOculto").value != responseText){
  40.                                   document.getElementById("2").innerHTML = resp;
  41.                             }
  42.                       }
  43.                 }
  44.           }
  45.      }
  46. }
  47.  
  48. window.setInterval("llamada_dos()",2000);
  49.  
  50. //FIJATE QUE EN LA SEGUNDA FUNCION EL  DIV SOLO SE ACTUALIZA SI LA RESPUESTA AJAX ES DISTINTA AL VALOR QUE ESTA EN EL CAMPO OCULTO "txtOculto" EL CUAL TAMBIEN ES UN VALOR DE RESPUESTA AJAX QUE YA SE HABIA TRAIDO CON LA PRIMERA FUNCION, SI POR ALGUNA RAZON LA RESPUESTA ES DISTINTA A LA PRIMERA QUE SE TRAJO, EN LA SEGUNDA FUNCION SE COMPROBARA ESO MEDIANTE LA COMPARACION DE LA RESPUESTA QUE SE TENIA CON LA NUEVA QUE ESTA LLEGANDO..
  51.  
  52. </script>

YA PUES QUEDA HACER EL CAMPO OCULTO EN EL HTML DE LA PAGINA...

<input type='hidden' name='txtOculto' id='txtOculto' />

....

ESPERO TE SIRVA... SALUDOS