Ahh, gracias!
Bueno estaba haciendo un chat con "comet", pero no me anda esta parte, solo me actualiza la primera ves vien y despues ya no, pero si hay nuevos datos.
Parte php:
Código php:
Ver originalif(isset($_POST['indice'])){ $indice=$_POST['indice']; // El ultimo id que tiene el cliente
$ultimo=$HalfChat->ultimoComenario($_SESSION['sala']); // Sacamos el ultimo id de la sala
while($ultimo==$indice){ // SI es el mismo
$ultimo=$HalfChat->ultimoComenario($_SESSION['sala']); // Sacamos otra vees
sleep(3); // Esperamos 3 segundos }
$comentarios=$HalfChat->verComentarios($_SESSION['sala']); // Si paso el while, es decir que ubo un cambio y sacamos los nuevo comentarios
$conexion=$HalfChat->isConection()?'true':'false'; // Vemos si no fue expulsado, para desirle al cliente que lo expulse
echo '{mensajes:"'.$comentarios.'",ultimaId:"'.$ultimo.'",conexion:'.$conexion.'}'; // Imprimimos los datos en JSON
}
y el js:
Código javascript
:
Ver originalthis.request=function(url,callback,parms){
var vars_temp='';
for(var par in parms)
vars_temp=vars_temp+'&'+par+'='+parms[par];
vars=vars_temp;
// alert("URL: "+url+" | Callback: "+callback+" | Parms: "+vars);
var Comet=this.xmlhttp();
Comet.open('post',url+'?'+Math.random(),true);
Comet.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
Comet.onreadystatechange=function(){
if(Comet.readyState==4){
// alert("Comet.responseText: "+Comet.responseText);
(callback||function(){})(Comet.responseText);
Comet.abort();
Comet=null;
}
};
Comet.send(vars);
};
this.actualizarMensajes=function(){
var elwin=this;
this.request(this.configuracion.interfax,function(contenido){
var dom=elwin.dom(elwin.configuracion.divContenedor);
var data=(eval('('+contenido+')'));
dom.innerHTML=data.mensajes;
dom.scrollTop=dom.scrollHeight;
// alert("End! | "+elwin.ultimateId+" "+data.ultimaId);
elwin.ultimateId=data.ultimaId;
if(!data.conexion)
document.location='index.php';
setTimeout(function(){
elwin.actualizarMensajes();
},1000);
},{'indice':elwin.ultimateId});
};
Gracias
Salu2