Foros del Web » Programando para Internet » Javascript »

document.getElementById().innerHTML=xmlhttp.respon seText;, no me está funcionando.

Estas en el tema de document.getElementById().innerHTML=xmlhttp.respon seText;, no me está funcionando. en el foro de Javascript en Foros del Web. Hola muy buenas. a ver si me podéis ayudar con lo siguiente. Tengo una función Javascript, con Ajax, que me estaba funcionando bien, pero ha ...
  #1 (permalink)  
Antiguo 31/12/2011, 10:30
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 13 años, 7 meses
Puntos: 0
document.getElementById().innerHTML=xmlhttp.respon seText;, no me está funcionando.

Hola muy buenas.

a ver si me podéis ayudar con lo siguiente.
Tengo una función Javascript, con Ajax, que me estaba funcionando bien, pero ha dejado de hacerlo, y por mucho que le doy vueltas al tema, no consigo ver porqué.
Esta es la función:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function showUser(str)
  3. {
  4. var keycode;
  5. if (window.event) keycode = window.event.keyCode;
  6. else if (e) keycode = e.which;
  7. else return true;
  8. if (keycode == 13)
  9.    {
  10. if (str=="")
  11.   {
  12.   document.getElementById("txt").innerHTML="";
  13.   return;
  14.   }
  15. if (window.XMLHttpRequest)
  16.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  17.   xmlhttp=new XMLHttpRequest();
  18.   }
  19. else
  20.   {// code for IE6, IE5
  21.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  22.   }
  23. xmlhttp.onreadystatechange=function()
  24.   {
  25.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  26.   {
  27.   document.getElementById("chata").innerHTML=xmlhttp.responseText;
  28.   }
  29.   }
  30. var chap;
  31. chap=document.getElementById("txt").value;
  32. xmlhttp.open("GET","user.php?q="+chap,true);
  33. xmlhttp.send();
  34. }
  35. }
  36. </script>

Lo que me hace la función es recoger lo que escribo en un textárea con Id=text, y con ajax me abre la página user.php a la que llevo la variable chap.
Supuestamente (ésto es lo que ha dejado de hacerme) me recoge lo que tengo en html en dicha página y lo muestra en otro textárea con Id=chata.
Tengo un Echo al ppio de la otra página, osea que no sé porqué no me trae el valor.



Luego, aprovecho, ya que es una función similar.
Pretendo que con la misma función (aunque no asociada a un evento) me haga lo mismo, pero cada cierto tiempo. Entonces tendría algo así:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function timedCount()
  3. {
  4. if (window.XMLHttpRequest)
  5.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  6.   xmlhttp=new XMLHttpRequest();
  7.   }
  8. else
  9.   {// code for IE6, IE5
  10.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  11.   }
  12. xmlhttp.onreadystatechange=function()
  13.   {
  14.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  15.     {
  16.     document.getElementById("chata").innerHTML=xmlhttp.responseText;
  17.     }
  18.   }
  19. var chap;
  20. chap=document.getElementById("txt").value;
  21. xmlhttp.open("GET","user2.php?q="+chap,true);
  22. xmlhttp.send();
  23. setTimeout("timedCount()",2000);
  24. }

Esta función me ha estado funcionando, pero digamos que lo que hace es mostrarme lo que tengo en la página user2.php a los dos segundos de abrir la página en la que está este script. Peroooo, lo que me gustaría es que lo hiciera cada dos segundos indefinidamente.
¿Alguna ayuda por favor?


¡Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 31/12/2011, 17:19
Avatar de rafa_yael  
Fecha de Ingreso: mayo-2010
Ubicación: Zapotlanejo, Mexico
Mensajes: 54
Antigüedad: 14 años
Puntos: 4
Respuesta: document.getElementById().innerHTML=xmlhttp.respon seText;, no me está fun

Esta linea:
Código Javascript:
Ver original
  1. document.getElementById("chata").innerHTML=xmlhttp.responseText;

Intenta mandar la respuesta a una variable, algo asi:

Código Javascript:
Ver original
  1. var resp = xmlhttp.responseText;
  2. document.getElementById("chata").innerHTML=resp;

Creo que se tiene que cargar en una variable para que funcione bien.

Y sobre la segunda función, utiliza un setInterval que ejecute la funcion cada 2000 milisegundos.
La ejecutas dentro de la funcion timedCount, y despues de 2 segundos vuelve a ejecutarse sola. Busca por ahi mas info sobre setInterval. Es facil.
  #3 (permalink)  
Antiguo 01/01/2012, 05:34
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: document.getElementById().innerHTML=xmlhttp.respon seText;, no me está fun

¡Muchísimas gracias rafa_yael!

¡Y Feliz Año!
No sé si podrías decirme (y termino con este asunto:)) cómo puedo hacer para que con dicha función (la primera), el textárea con Id=chata (donde se muestra el resultado), su barra scroll permanezca siempre abajo (porque sino, si el texto es muy largo, queda escondido).

Gracias de nuevo.

Etiquetas: ajax, funcion, html, php
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 14:54.