bonjour à tous, j'ai suivit à la lettre un des tutos de grafikart: .
(j'y ai apporté quelques petites modifications pour mon tchat)
mais voilà pour le setInterval, pas moyen que ma page se rafraîchisse toute seule:
ma page de connexion au tchat
ma page arrivé au tchat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <div id="conteneur"> <h1>tchat</h1> <?php if(isset($erreur)){echo "<p>".$erreur."</p>";} ?> <form action="" method="post"> votre pseudo: <input type="text" name="pseudo" value="<?php echo $_SESSION["data"]["membreIdentifiant"];?>"> <input type="submit" value="tchater"/> </form> </div>
tchat.js:
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
33
34
35
36
37
38
39
40 <div style="width:94%;margin-bottom: 200px;"> <h3>vous êtes connecté en tant que : <?php echo $membreidentifiant1;?></h3> <div id="connected"> </div> <div id="tchat"> <?php $tchat=$bdd->prepare("SELECT messagetchat.messageTchattext,messagetchat.messageTchatPseudo,messagetchat.messageTchatDate FROM messagetchat,membre WHERE messagetchat.membreId=membre.membreId ORDER BY messageTchatDate DESC Limit 15 "); $tchatResult=$tchat->execute([$membreidentifiant1]); $d=array(); while ($data=$tchat->fetch(PDO::FETCH_ASSOC)) { $d[] = $data; } for($i=count($d)-1;$i>=0;$i--){ ?> <p><strong><?php echo $d[$i]["messageTchatPseudo"];?></strong>(<?php echo date("d/m/Y H:i:s",$d[$i]["messageTchatDate"]);?>) : <?php echo htmlentities($d[$i]["messageTchattext"]); ?></p> <?php } ?> </div> </div> <div id="tchatForm" class="" style="position: fixed;bottom: 0;width: 100%;"> <form class="" action="#" method="post"> <div> </div> <div class="textareaTchat"> <textarea name="messageTchattext" style="width: 80%;"></textarea> </div> <div style="margin-top:-20px;float: right;margin-right:250px"> <input type="submit" value="envoyer"/> </div> <div class="deconnectionTchat"> <a href="script/deconnexion_sc_Tchat.php">Déconnection</a> </div> </form> </div>
et tchatAjax.js:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 /** * Created by cristelle on 12-05-15. */ var url="tchatAjax.php"; var lastId=0; var timer = setInterval(getMessages(),3000); var ctimer = setInterval(getConnected,10000); //selection du formulaire $(function(){ getConnected(); $("#tchatForm form").submit(function(){ clearInterval(timer); showLoader('#tchatForm'); var message = $("#tchatForm form textarea").val(); $.post(url,{action:"addMessage",messageTchattext:message},function(data){ if(data.erreur=='ok'){ getMessages(); $("#tchatForm form textarea").val(""); }else{ alert(data.erreur); } timer = setInterval(getMessages,3000); hideLoader(); },'json'); return false; }) }); function getMessages(){ $.post(url,{action:"getMessages",lastId:lastId},function(data){ if(data.erreur=='ok'){ $("#tchat").append(data.result); lastId=data.lastId; }else{ alert(data.erreur); } },'json'); return false; } function getConnected(){ $.post(url,{action:"getConnected"},function(data){ if(data.erreur=='ok'){ $("#connected").empty().append(data.result); }else{ alert(data.erreur); } },'json'); return false; } //le loader function showLoader(div){ $(div).append('<div class="loader loader-quart"></div>'); $(".loader").fadeTo(500,0.6); } //cacher le loader function hideLoader(){ $(".loader").fadeOut(500,function(){ $(".loader").remove(); }); }
je ne comprend pas pourquoi, dans le tuto, cela fonctionne et chez moi pas, pourriez-vous m'aider svp?
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 <?php session_start(); /** * Created by PhpStorm. * User: cristelle * Date: 12-05-15 * Time: 17:23 */ require ("bdd/bdd_biBelgium.php"); $d=array(); $membre=$_SESSION["data"]["membreIdentifiant"]; if(!isset($membre) || empty($membre) || !isset($_POST["action"])){ $d["erreur"]="vous devez être connecté pour tchater"; }else{ extract($_POST); $pseudo= $membre; /** * action addMessage * permet l'ajout d'un message */ if($_POST["action"]=="addMessage"){ $messageTchattext=$bdd->quote($messageTchattext); $selectId=$bdd->prepare("SELECT membreId FROM membre WHERE membreIdentifiant=?"); $requete=$selectId->execute([$membre]); $row=$selectId->fetch(); $membreId=$row[0]; $insertionBddMessage=$bdd->prepare("INSERT INTO messagetchat(messageTchatPseudo,messageTchatDate,messageTchattext,membreId) VALUES (?,?,?,?)"); $requeteInsertion = $insertionBddMessage->execute(array($pseudo,time(),$messageTchattext,$membreId)); $d["erreur"]='ok'; } /** * action getMessages * permet l'affichage des derniers messages */ if($_POST["action"]=="getMessages"){ $lastId=floor($lastId); $selectionBddMessage=$bdd->prepare("SELECT * FROM messagetchat WHERE idMessageTchat>$lastId ORDER BY messageTchatDate ASC"); $requeteInsertion = $selectionBddMessage->execute(); $d["result"]=""; $d["lastId"]=$lastId; while($r=$selectionBddMessage->fetch(PDO::FETCH_ASSOC)){ $d["result"].='<p><strong>' .$data["messageTchatPseudo"]. '</strong>('.date("d/m/Y H:i:s",$data["messageTchatDate"]).'):' .htmlentities($data["messageTchattext"]). '</p>'; $d["lastId"]=$data["idMessageTchat"]; } $d["erreur"]='ok'; } /** * action getConnected * permet affichage dernier connecté */ if($_POST["action"]=="getConnected") { $now=time(); $idTcha=$_SESSION['data']['idTchat']; $sql=$bdd->prepare("SELECT connectedPseudo FROM connected WHERE $now-connectedDate>60"); $result=$sql->execute(); $d["result"]="connecté : "; while($data=$sql->fetch(PDO::FETCH_ASSOC)){ $d["result"].= $data["connectedPseudo"].","; } $d["result"]=substr($d["result"],0,-1);//enlève le "," s'il n'y a qu'un membre $sql=$bdd->prepare("UPDATE connected SET connectedDate=:connectedDate,idConnected=:idConnected WHERE connectPseudo=:connectPseudo "); $sql->bindParam(':connectedDate',$now); $sql->bindParam(':idConnected',$idTcha); $sql->bindParam(':connectPseudo',$data["connectedPseudo"]); $sql->execute(array(':connectedDate'=>$now,':idConnected'=>$now,':connectPseudo'=>$data["connectedPseudo"])); $d["erreur"]='ok'; } } echo json_encode($d); ?>
merci
Partager