Eso funciona genial, pero tengo un problema, cuando pasan los 3 segundos del SetInterval, se repiten los resultados ejemplo si los resultados son:
Cita:
Cuando pasan esos tres primeros segundos, se carga de nuevo quedando asi:B
A
B
A
B
Cita:
Luego de eso, el script funciona genial, cada 3 segundos aparecen los nuevos mensajesB
A
B
B
A
B
A
B
B
A
B
PD: No estoy seguro si esto va en PHP o javascript, ya que lo que se repite son los resultados de una consulta Mysql, hecha con PHP, que se actualiza con javascript.
Les muestro parte de mi script para que entiendan mas:
Cita:
Eso son partes de la pagina chat.php, la siguiente es la pagina mensajes.php<script src="jquery-1.5.js" language="javascript"></script>
<script language="javascript">
window.onload = setInterval('recargar()',3000);
</script>
<script language="javascript"> function recargar(){
var variable_post="ok=ok"; /// Aqui podemos enviarle alguna variable a nuestro script PHP
$.post("mensajes.php", { variable: variable_post }, function(data){ /// Invocamos a nuestro script PHP
$("#actualizar").html(data); }); /// Ponemos la respuesta de nuestro script en el párrafo recargado
} </script>
<?php
include("mensajes.php");
?>
<script language="javascript">
window.onload = setInterval('recargar()',3000);
</script>
<script language="javascript"> function recargar(){
var variable_post="ok=ok"; /// Aqui podemos enviarle alguna variable a nuestro script PHP
$.post("mensajes.php", { variable: variable_post }, function(data){ /// Invocamos a nuestro script PHP
$("#actualizar").html(data); }); /// Ponemos la respuesta de nuestro script en el párrafo recargado
} </script>
<?php
include("mensajes.php");
?>
Cita:
Entonces, no entiendo porque cargan bien los resultados y luego se repiten, pero se repiten una sola vez, luego de todo eso funciona perfecto el script. Saludos y muchas gracias //Todas unas cadenas de coneccion a la base de datos, no es necesario mostrarlas
$list = mysql_query("SELECT * from mensaje ORDER BY id desc LIMIT $from,$max_results"); //esta es la consulta el limit es porque hay una paginacion, que tampoco es necesario mostrar..
echo"<p id='actualizar'>";
while($row = mysql_fetch_assoc($list)) {
echo nl2br("<div align='center'><strong>$row[autor]</strong>:$row[mensaje]<div style='text-align:right;'>$row[fecha] - $row[ip]</div><hr style='width:620px;'/></div>");}
echo"</p>";
$list = mysql_query("SELECT * from mensaje ORDER BY id desc LIMIT $from,$max_results"); //esta es la consulta el limit es porque hay una paginacion, que tampoco es necesario mostrar..
echo"<p id='actualizar'>";
while($row = mysql_fetch_assoc($list)) {
echo nl2br("<div align='center'><strong>$row[autor]</strong>:$row[mensaje]<div style='text-align:right;'>$row[fecha] - $row[ip]</div><hr style='width:620px;'/></div>");}
echo"</p>";