Bonjour, je me suis lancé dans l'apprentissage d' ajax avant hier, donc je fais des erreurs comme tout débutants:
![]()
J' ai donc essayé comme tout bon débutant de faire un simple script de chat :
index.php :
envoi.php (qui est censé recupérer les données et enregistrer dans mysql) :
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 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> <script type="text/javascript"> function getxhr() { var xhr = null; if (window.XMLHttpRequest || window.ActiveXObject) { if (window.ActiveXObject) { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { xhr = new XMLHttpRequest(); } } else { alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest..."); return null; } return xhr; } function recupe() { var xhr = getxhr(); xhr.onreadystatechange = function() { if (xhr.readyState == 3 && (xhr.status == 200 || xhr.status == 0)) { document.getElementById("chat").innerHTML=xhr.responseText; } setTimeout(recupe,30000); }; xhr.open("POST", "recupe.php", true); xhr.send(null); } function envoi() { var xhr = getxhr(); var requete="pseudo="+document.getElementById("pseudo").value+"&message="+document.getElementById("message").value; xhr.open("POST", "envoi.php", true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send(requete); } </script> </head> <body onload="recupe()"> <div> <div id="chat"></div> </div> <div id="form"> <form method="post" action="index.php" onSubmit="return(false)"> <input type="text" name="pseudo" id="pseudo" maxlength="20" /> <input type="text" name="message" id="message" size="200" maxlength="300" /> <input type="submit" name="envoi" value="Envoyer" onClick="envoi()"/> </form> </div> </body> </html>
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php include 'connect.php'; if (isset($_POST['envoi']) && ($_POST['pseudo'] && $_POST['message'])!="") { $pseudo=$_POST['pseudo']; $message=$_POST['message']; mysql_query("INSERT INTO chat VALUES('','$pseudo','$message')"); } ?>
Et recupe.php (qui affiche les données récupérées dans la base de données) :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php include 'connect.php'; $query=mysql_query("SELECT * FROM chat ORDER BY id ASC LIMIT 0,25"); while ($q=mysql_fetch_assoc($query)) { echo '<strong>'.htmlentities($q['pseudo']).'</strong> : '.htmlentities($q['message']).'<br /><br />'; } ?>
1 er problème : Mes données ne s'enregistrent pas dans la base de données ...
2 nd problème : Les données s'affichent très bien dans la balise "chat", le div est bien rechargé et affiche bien les nouvelles entrées car j'ai essayé d'entrer via phpmyadmin directement, mais j'ai l'impression que mon navigateur plante à cause de ce code au bout de quelques minutes ...
Voila, désolé pour le paté, mais bon ...
Merci beaucoup pour votre aide par avance![]()
Partager