Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/12/2010, 13:30
den_22
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con actualizacion de divs

Hola xziolhvinvhgl, gracias por tomarte el trabajo del codigo, el tema es que si bien me sirve, no me hace actualizacion para más de un div. Supongamos que quiero que se actualicen tanto la div 1 como la div 2, bueno pegando el mismo codigo y cambiando unas partes no pasa nada.

Lo dejo por si te interesa verlo.
div 1 input --> <input type="hidden" id="txtOculto" name="txtOculto" value="<?php echo (aca hago un select de la bd para ver cual es el valor que tiene);?>">

div 2 input --> <input type="hidden" id="txtOculto1" name="txtOculto1" value="<?php echo (tambien hago un select de la bd para ver cual es el valor que tiene);?>">

script para div 1:

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("1").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("1").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>

div 2 script:

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_uno1(){
  10. with(RequestObject ){
  11.  open("POST","mostrandocontenido2.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("txtOculto1").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_dos1(){
  29. with(RequestObject ){
  30.  open("POST","mostrandocontenido2.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("txtOculto1").value != responseText){
  40. document.getElementById("2").innerHTML = resp;
  41. }
  42. }
  43. }
  44. }
  45. }
  46. }
  47.  
  48. window.setInterval("llamada_dos1()",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>

Entonces las div quedan

<div id="1"><input type="hidden" id="txtOculto" name="txtOculto" value="<?php echo (tambien hago un select de la bd para ver cual es el valor que tiene);?></div>


<div id="1"><input type="hidden" id="txtOculto1" name="txtOculto1" value="<?php echo (tambien hago un select de la bd para ver cual es el valor que tiene);?></div>


Gracias por la ayuda