Bonjour à tous,
voici le contexte :
je cherche à mettre en place un mini chat. Et pour cela, sur ma page chat2.php, j'ai un div à l'intérieur duquel je fais include("chat3.php");
chat3.php est un script permettant d'aller lire un fichier texte où sont stockés tous les messages des utilisateurs et de les afficher.
Et j'aimerais faire en sorte que la scrollbar du div de la page chat2.php soit toujours positionnée en bas (pour pouvoir voir le dernier message entré).
Et mon code ne fonctionne pas.
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <?php echo "<div id='chat'>"; include("./interaction/chat3.php"); if (isset($_POST['message']) && !empty($_POST['message'])) { $fp = fopen("./interaction/chat2.txt","a+"); if (!$fp) { echo "Echec de l'ouverture du Chat"; exit; } else { $message = (htmlentities($_POST['message'], ENT_QUOTES ,'UTF-8')); $message = nl2br($message); fputs($fp,$_SESSION['login']." : ".$message."\n"); fclose($fp); // On ferme le fichier } } echo "<script language='JavaScript'>window.document.getElementById('chat').scrollTop = window.document.getElementById('chat').scrollHeight;</script>"; echo "</div>"; ?> <textarea name='message' rows='1' cols='80' value='' id='mytextarea'></textarea><input type='submit' name='btnEnvoyer' value='Envoyer' >
Je précise que ce code est une nouvelle version de mon chat.
La précédente n'utilisait qu'un seul fichier et dans mon div j'allais lire et afficher les données du fichier texte. Et le repositionnement de la scrollbar fonctionnait.
Mais dès que j'ai changé en séparant le code en deux fichiers et en faisant l'include du deuxieme fichier php, ca ne fonctionne plus. Je précise aussi que je vois bien le contenu du fichier texte, mais la scrollbar reste en haut.
Pourquoi j'ai séparé le code en deux fichiers ? C'est pour pouvoir utiliser une fonction AJAX pour pouvoir mettre à jour l'affichage du contenu du fichier texte, pour éviter de faire un refresh de la page (le refresh provoque la perte des données dans ma zone de saisie de texte).
J'espere qu'il y aura quelqu'un pour m'aider.
Merci à vous !
Partager