Bonjour à tous,
Je développe en ce moment, dans le cadre d'un projet d'études, un site de "speed dating". Je n'ai pas encore réellement de notions d'AJAX (je vois venir AJAX est ton ami) et voici ce que j'aimerais faire :
Je voudrais rafraîchir une <div> contenant les messages du tchat toute les 5 secondes. Je veux rafraîchir uniquement cette <div> pour ne pas gêner l'utilisateur lorsqu'il entre un texte dans le champs pour le poster.
Les messages sont postés par la méthode POST et affichés avec un SELECT.
J'aimerais éviter l'AJAX pour cette partie-là (histoire de bien comprendre ce que je fais). Cette partie fonctionne (sans rafraîchissement).
Voici ce que j'ai trouvé pour l'instant :
Le résultat actuel :
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 function rafraichir_tchat(){ adresse="tchat.php"; //appeler le script ajax pour charger le contenu de la page $.ajax({ type: "GET", url: adresse, dataType : "html", //traitement de l'erreur en cas de problème error:function(msg, string){ //afficher l'erreur de chargement }, success:function(data){ document.getElementById('tchatmsg').innerHTML = "le résultat de la requête"; //on affecte les resultats au div $('tchatmsg').append(data); $('tchatmsg').fadeIn(3000); } }); setTimeout("rafraichir_tchat()", 5000); }
J'obtiens un affichage correcte de tous les messages lorsque je poste un nouveau message. Mais lors du rafraîchissement de la div, le code est remplacé par le texte "le résultat de la requête".
Ce qui est normal ^^. Mais comment faire pour le remplacer par le résultat d'une requête ?
Voici le contenu de la <div> que je souhaite rafraîchir :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <div id="tchatmsg"> <?php //Affichage des messages du tchat $requeteMsg = mysql_query("SELECT message.messageMsg, membre.pseudoMbr FROM message INNER JOIN membre ON message.idMbr_FK = membre.idMbr WHERE idConv_FK='$idConv' ORDER BY message.idMsg DESC LIMIT 0,12") OR die("Erreur de la requête MySQL"); while($resultatMsg = mysql_fetch_array($requeteMsg, MYSQL_ASSOC)) { echo "<b>".htmlspecialchars($resultatMsg['pseudoMbr'])."</b> : " .htmlspecialchars($resultatMsg['messageMsg'])."<br>"; } ?> </div>
Merci d'avance ça m’enlèverait une bonne grosse épine dans le pied![]()
Partager