Bonjour,
je suis en train de faire un chat, et j'affiche les messages les un en dessous des autres.
je souhaite que le dernier message soit toujour visible, c'est à dire que ma scrollbar reste en bas.
ça marche bien, sauf qu'au bout de quelques secondes, ça plante, je ne sais pas pourquoi...
pouvez vous m'aider à réparer ça, ou connaissez vous une autre méthode ?
mon code simplifier :
<?php
// Page faisant appel aux sessions
session_start();
?>
<html>
<head>
<title>Document sans titre</title>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<link rel="stylesheet" href="../mathieu.css" type="text/css">
</head>
<script language="JavaScript" type="text/javascript">
// Fonction pour faire une pause
function delay(gap){ /* gap is in millisecs */
var then,now;
then=new Date().getTime();
now=then;
while((now-then)<gap)
{now=new Date().getTime();}
}
</script>
<body>
<?
include("connexion.inc.php");
@mysql_connect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");
$compteur_old = 0; //il sert à savoir s'il y a des nouveaux messages à afficher sur le chat
for($i=1;$i=1000;$i++) (boucle infini car je réinitialise i à 1 à la fin.
{
$date_chat = time ();
$requete_chat = "SELECT * FROM table_messages WHERE id_destinataire='chat'";
$result_chat = mysql_query($requete_chat);
$compteur = count($result_chat); //compte le nombre de message avec réponses dans la base
while ($enreg_chat = mysql_fetch_array($result_chat))
{if (($date_chat - $enreg_chat[date_verif]) < 60) //pour ne pas affichers les messages trop vieux avant la 1ère connection.
{if ($compteur_old != $compteur)
{$compteur_old = $compteur;
echo $enreg_chat[date_mess];
echo " ";
echo $enreg_chat[id_auteur];
echo " : ";
echo $enreg_chat[message];
echo "<br>";
echo date("d-m-Y H:i");
echo " MathieuJohann : ";
echo $enreg_chat[reponse];
echo "<br>";
}
}
}
echo '<script language="JavaScript">window.scrollTo(0,1000);delay(500);</script>'; //script pour avoir le scroll toujours en bas, puis appel à la fonction qui fait la pause
$i=1;
}
?>
</body>
</html>