Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Error en Autorefresh con AJAX

Estas en el tema de Error en Autorefresh con AJAX en el foro de Frameworks JS en Foros del Web. Saludos, La verdad es que en realidad quiero realizar una marquesina o texto que se desplace lateralmente pero, estos datos van variando segun cambia los ...
  #1 (permalink)  
Antiguo 27/12/2009, 07:07
Avatar de Knight_Rider  
Fecha de Ingreso: noviembre-2009
Ubicación: La House de mis viejos XD
Mensajes: 83
Antigüedad: 15 años
Puntos: 4
Busqueda Error en Autorefresh con AJAX

Saludos,
La verdad es que en realidad quiero realizar una marquesina o texto que se desplace lateralmente pero, estos datos van variando segun cambia los datos de un archivo .txt que me genera otro programa.
Es decir en el interior del archivo CurrenSong.txt se almacena lacancion que esta sonando.el problema es que haciendo dos pruebas me da un error en IE:

Detalles de error de página web

Agente de usuario: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Fecha: Sun, 27 Dec 2009 12:51:36 UTC

Mensaje: El dato necesario para completar esta operación no está disponible todavía.

Línea: 35
Carácter: 3
Código: 0
URI: http://******/playing.php


A continuación pongo el codigo de playing.php que como se podrá observar hay dos cosas a cambiar con los mismo datos el de fuera de la marquesina (div) y el (marquee). que alquien me explique que hago mal que me estoy volviendo loco.
Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Reproductor</title>
<style type="text/css">
<!--
body {
	background-color: #000000;
}
.Estilo1 {color: #FFFFFF}
body,td,th {
	color: #FFFFFF;
}
-->
</style>
<script type="text/javascript">
function Ajax(){
var xmlHttp;
	try{	
		xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
	}catch (e){
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
		}catch (e){
		    try{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e){
				alert("No AJAX!?");
				return false;
			}
		}
	}
	xmlHttp.onreadystatechange=function(){
		document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
		setTimeout('Ajax()',5000);
	}
	xmlHttp.open("GET","CurrentSong.php",true);
	xmlHttp.send(null); 
}
window.onload=function(){
	setTimeout('Ajax()',5000);
}
</script>
</head>
<body>
<p align="center" class="Estilo1"><span class="Estilo6"><img src="../img/logo/225x150.jpg" width="225" height="150" /></span></p>
//Este funcionar,... funciona al menos vsualmente en el explorador
<div id="ReloadThis" align="center" class="Estilo1">En este momento:</div>
//Este no varia en la web y se queda en procesando mientras el anterior va modificando datos.
<marquee id="ReloadThis" direction="left" height="20" width="100%" scrolldelay="200" onmouseout="this.start()" onmouseover="this.stop()">
Procesando...
</marquee>
</body>
</html> 
El código de CurrentSong.php:
Código PHP:
<?php
if (!($arc fopen ("../CurrentSong.txt""rb"))) {
    print 
"No hay datos";
}
else {
    
fpassthru($arc);
}
?>
Muchas gracias!!
  #2 (permalink)  
Antiguo 27/12/2009, 07:24
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Error en Autorefresh con AJAX

rb ???

por que usas rb como modo para leer el archivo ??

intenta cambiando este codigo:
Código PHP:
Ver original
  1. if (!($arc = fopen ("../CurrentSong.txt", "rb"))) {
por el siguiente:
Código PHP:
Ver original
  1. if (!($arc = fopen ("../CurrentSong.txt", "r"))) {

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 27/12/2009, 07:50
Avatar de Knight_Rider  
Fecha de Ingreso: noviembre-2009
Ubicación: La House de mis viejos XD
Mensajes: 83
Antigüedad: 15 años
Puntos: 4
Respuesta: Error en Autorefresh con AJAX

He realizado el cambio y sigue dándome el mismo error.

Así queda ahora:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Reproductor</title>
<style type="text/css">
<!--
body {
	background-color: #000000;
}
.Estilo1 {color: #FFFFFF}
body,td,th {
	color: #FFFFFF;
}
-->
</style>
<script type="text/javascript">
function Ajax(){
var xmlHttp;
	try{	
		xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
	}catch (e){
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
		}catch (e){
		    try{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e){
				alert("No AJAX!?");
				return false;
			}
		}
	}
	xmlHttp.onreadystatechange=function(){
		document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
		setTimeout('Ajax()',5000);
	}
	xmlHttp.open("GET","../CurrentSong.txt",true);
	xmlHttp.send(null); 
}
window.onload=function(){
	setTimeout('Ajax()',5000);
}
</script>
</head>
<body>

<p align="center" class="Estilo1"><span class="Estilo6"><img src="../img/logo/225x150.jpg" width="225" height="150" /></span></p>

<div id="ReloadThis" align="center" class="Estilo1">Procesando...</div>

</body>
</html> 
Lo he simplificado y suprimido la marquesina y sigue generandome el mismo error.

Tambien he modifcado lo de la lectura del archivo y sigo teniendo el mismo error. :(
Según he visto se refiere a a esta parte del código linea 35 aproximadamente pero no veo el qué... O_o
Código:
xmlHttp.onreadystatechange=function(){
		document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
		setTimeout('Ajax()',5000);
  #4 (permalink)  
Antiguo 27/12/2009, 08:40
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Error en Autorefresh con AJAX

Una marquesina queres? Conoces la etiqueta <marquee></marquee>????

- http://www.webtaller.com/manual-html/marquee.php

Si necesitas variar el contenido lo haces con AJAX y DHTML...
__________________
HV Studio
Diseño y desarrollo web
  #5 (permalink)  
Antiguo 27/12/2009, 08:51
Avatar de Knight_Rider  
Fecha de Ingreso: noviembre-2009
Ubicación: La House de mis viejos XD
Mensajes: 83
Antigüedad: 15 años
Puntos: 4
Respuesta: Error en Autorefresh con AJAX

Aham jackson666 eso es, pero esque ya de por si el AJAX no funciona, o mejor dicho da errores, así que si no funciona la base como voy a experimentar implementándolo en otras partes como marquesinas...
  #6 (permalink)  
Antiguo 27/12/2009, 09:25
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Error en Autorefresh con AJAX

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<meta name="author" content="Jackson666" />
	<title>Untitled 2</title>
</head>
<body onload="setTimeout('startAjax()',5000)">

<div id="myDIV" style="width: 150px; height: 150px; border: 1px solid #000;"></div>

<script type="text/javascript">
var xmlHttp = false;
function startAjax(){
    if(window.XMLHttpRequest){
        xmlHttp = new XMLHttpRequest();
    }else{
		try{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
		}catch (e){
		    try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e){
				alert("No AJAX!?");
				return false;
			}
		}
	}
    if(xmlHttp !== false){
    	xmlHttp.open("GET","archivo.php");
    	xmlHttp.onreadystatechange=function(){
    	   if(xmlHttp.readyState==4){
    	       if(xmlHttp.status==200){
    	           var resp = eval("(("+xmlHttp.responseText+"))");
                   document.getElementById('myDIV').innerHTML = '';
                       for(var i in resp){
                            document.getElementById('myDIV').innerHTML += resp[i]; 
                       }
    	       }
    	   }
    	}
    xmlHttp.send(null); 
    }
}
</script>
</body>
</html> 
Y tu "archivo.php"

Código PHP:
<?php

$array 
file('algo.txt');

echo 
json_encode($array);

?>
__________________
HV Studio
Diseño y desarrollo web
  #7 (permalink)  
Antiguo 27/12/2009, 10:16
Avatar de Knight_Rider  
Fecha de Ingreso: noviembre-2009
Ubicación: La House de mis viejos XD
Mensajes: 83
Antigüedad: 15 años
Puntos: 4
Respuesta: Error en Autorefresh con AJAX

Esto,... no funciona nada, solo el archivo php ya me da un error catastrofico
(Fatal error: Call to undefined function: json_encode() in /var/www/vhost/radio24fm.com/home/html/escuchar/CurrentSong.php on line 5)
Y el script principal tiene un error de sintaxis en la linea 34,... o_O y eso que todavia no lo hemos enmarcado en la marquesina. y donde esta el autorefresh?
  #8 (permalink)  
Antiguo 27/12/2009, 10:20
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Error en Autorefresh con AJAX

El refresh esta en el onload del body, lo cambie

El script lo probe y funciona...

Le cambiaste los nombres a algun archivo? si es asi, deberias cambiarle tambien al archivo llamado en open() y al txt dentro del php tambien

Que version de php tenes?? (phpinfo());

Me imagino que lo estas llamando desde localhost/tuarchivo.php con el apache corriendo...
__________________
HV Studio
Diseño y desarrollo web
  #9 (permalink)  
Antiguo 27/12/2009, 10:48
Avatar de Knight_Rider  
Fecha de Ingreso: noviembre-2009
Ubicación: La House de mis viejos XD
Mensajes: 83
Antigüedad: 15 años
Puntos: 4
Respuesta: Error en Autorefresh con AJAX

EL refresh en el onload que yo sepa lo único quehace es que se ejecute el script "startAjax" antes de que se cargue la pagina por completa lo cual esta bien para que pueda mostrar en el momento de cargarse el resultado de las variables que se solicitarán,.. pero no se volverá a ejecutar posteriormente,.. no?
Le cambie los nombres y claro, a todo lo que se incluye y se refiere a los archivos dentro del codigo,... vamos a lo que posiblemente nos interese mas... la version...
aqui os dejo el enlace sin las 3w a un apagina que he adaptado para el phpinfo
radio24fm.com/escuchar/CurrentSong.php
A ver si damos con el problema. Yo reconozco que cuando hago una consulta aqui,... desde luego traen quebraderos de cabeza....
  #10 (permalink)  
Antiguo 27/12/2009, 10:52
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: Error en Autorefresh con AJAX

jajaja y a veces pasa....

El startAjax() se va a ejecutar cada 5 segundos, no vas a notar el cambio a menos que modifiques el txt...

Tenes la version 4 de php... ya va por la 5! Actualizate viejo!!!
__________________
HV Studio
Diseño y desarrollo web
  #11 (permalink)  
Antiguo 27/12/2009, 11:03
Avatar de Knight_Rider  
Fecha de Ingreso: noviembre-2009
Ubicación: La House de mis viejos XD
Mensajes: 83
Antigüedad: 15 años
Puntos: 4
Respuesta: Error en Autorefresh con AJAX

jajaja, ya claro ahi está el tema que el txt lo actualiza otro programa, el que reproduce la musica que emite la radio y a lo mejor cada 3 minutos este varia si el usuario abre su reproductor y se esta con el abierto una hora... por eso queria usar AJAX y no un simple refresh de toda la pagina.
Y lo de la version... que quieres que te diga... hubiese jurado que tenia la 5 pues despues de todo eso afirma la empresa de hosting en la que lo tengo,.. pero mira... les sueltas un phpinfo,.. y flush... ahí sale todo.. ya les he metido la bronca ya,...ahora hace falta que me hagan caso...
  #12 (permalink)  
Antiguo 28/12/2009, 13:55
 
Fecha de Ingreso: octubre-2009
Mensajes: 97
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Error en Autorefresh con AJAX

Tu código esta desordenado, por eso no funciona.
Primero va:
Código Javascript:
Ver original
  1. xmlHttp.open("GET","CurrentSong.php",true);
  2.     xmlHttp.send(null);
Y luego va:
Código Javascript:
Ver original
  1. xmlHttp.onreadystatechange=function(){
  2.         document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
  3.         setTimeout('Ajax()',5000);
  4.     }

Tu lo pusiste al reves.

Espero que te funcione.
  #13 (permalink)  
Antiguo 03/01/2010, 03:47
Avatar de Knight_Rider  
Fecha de Ingreso: noviembre-2009
Ubicación: La House de mis viejos XD
Mensajes: 83
Antigüedad: 15 años
Puntos: 4
Respuesta: Error en Autorefresh con AJAX

weno weno weno, he hecho la ultima modficación y ahora peor,... se queda el cargando y un nuevo error

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Radio24fm - Reproductor</title>
<style type="text/css">
<!--
body {
	background-color: #000000;
}
.Estilo1 {color: #FFFFFF}
body,td,th {
	color: #FFFFFF;
}
-->
</style>
</head>
<body>
<script type="text/javascript">
function Ajax(){
var xmlHttp;
	try{	
		xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
	}catch (e){
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
		}catch (e){
		    try{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e){
				alert("No AJAX!?");
				return false;
			}
		}
	}
	xmlHttp.open("GET","../CurrentSong.txt",true);
	xmlHttp.send(null);
	}
	xmlHttp.onreadystatechange=function(){        document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;        setTimeout('Ajax()',5000);  
}
window.onload=function(){
	setTimeout('Ajax()',5000);
}
</script>
<p align="center" class="Estilo1"><span class="Estilo6"><img src="../img/logo/225x150.jpg" width="225" height="150" /></span></p>
<div id="ReloadThis" align="center" class="Estilo1">CARGANDO...</div>
</body>
</html> 
Error en la linia 39 que xml.http no está definido. pa volverse loco... (lo de volverse loco no lo dice el error...) XD
  #14 (permalink)  
Antiguo 09/01/2010, 05:01
Avatar de Knight_Rider  
Fecha de Ingreso: noviembre-2009
Ubicación: La House de mis viejos XD
Mensajes: 83
Antigüedad: 15 años
Puntos: 4
Respuesta: Error en Autorefresh con AJAX

Alguien que me pueda decir como hacer un autorefresh con ajax para que un archivo TXT que va variando porque lo genera otro programa no de problemas?
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 22:32.