Bonjour,
Dᅵsolᅵ si cette question n'a pas sa place ici mais s'agissant de
l'utilisation de 2 langages diffï¿œrents, je tente ma chance ici. Si un FU
paraï¿œt utile ...
Description de l'ï¿œvï¿œnement : une fenï¿œtre de chat dont les messages sont
actualisï¿œs toutes les 5 secondes avec un affichage de bas en haut.
Les messages sont appelï¿œs d'une base MySQL sous la variable "$msg"
Problᅵme : si lors de l'actualisation (5 sec) un nouveau message a ᅵtᅵ
ᅵcrit et donc renvoyᅵ dans la fenᅵtre du chat, l'ascenseur remonte au
lieu de suivre le flux des messages.
Je cherche ᅵ forcer l'ascenseur ᅵ suivre le flux des messages et donc ᅵ
rester systᅵmatiquement collᅵ au bas de la fenᅵtre. Avec la possibilitᅵ,
bien entendu, de l'utiliser pour pouvoir lire des messages prï¿œcï¿œdents
situï¿œs en dehors de la fenï¿œtre.
Voici le code PHP permettant d'aller chercher les messages dans la BdD
et de les formater :
<code>
$ide= MYSQL_CONNECT($host_mysql,$user_mysql,$pass_mysql);
mysql_select_db("$bd_mysql");
$tm=microtime();$tm2=explode(" ",$tm);$tm3=$tm2[1];
$query = "DELETE FROM $table WHERE (temp+7777)<$tm3";
mysql_query($query,$ide);
$query = "SELECT * FROM $table ORDER BY id DESC";
$result = mysql_query($query,$ide);
$cpt=0;
while($row = mysql_fetch_row($result))
{
$cpt++;
$coul=substr($row[4],0,1);
$tail=substr($row[4],1,1);
$appa=substr($row[4],2,1);
$msg=$row[2];
if ($appa==1){$msg.=$row2;}
if ($appa==2){$msg2="<B>";$msg2.=$msg;$msg2.="</B>";$msg=$msg2;}
if ($appa==3){$msg2="<I>";$msg2.=$msg;$msg2.="</I>";$msg=$msg2;}
if ($appa==4){$msg2="<U>";$msg2.=$msg;$msg2.="</U>";$msg=$msg2;}
if ($appa==5){$msg2="<STRIKE>";$msg2.=$msg;$msg2.="</STRIKE>";$msg=$msg2;}
if ($coul==1){$msg2='<FONT
COLOR="#000000">';$msg2.=$msg;$msg2.="</FONT>";$msg=$msg2;}
if (snip la suite de la sï¿œrie des couleurs utilisables pour chaque
message) ...
echo"- <u>$row[1]</u> <font color=\"999999\">[$row[3]]</font> : $msg<br>";
if ($cpt==20) {break;}
}
MYSQL_CLOSE();
?>
</code>
Si je ne me trompe, je ne vois que JavaScript pour forcer l'ascenseur.
J'envisage ceci :
<script type="text-javascript">
var i = setInterval('$msg()', 5);
function $msg()
{
document.documentElement.scrollTop =
document.documentElement.scrollHeight;
}
</script>
Est-ce que le nom de la variable ne risque pas de poser problᅵme et oᅵ
puis-je insï¿œrer ce script sans risquer de foirer l'affichage ?
Cordialement,
--
docanski
Portail et annuaire du nord-Bretagne :
http://armorance.free.fr/
Guide des champignons d'Europe :
http://mycorance.free.fr/
La vallï¿œe de la Rance maritime :
http://valderance.free.fr/
Les cï¿œtes du nord de la Bretagne :
http://docarmor.free.fr/