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/