bonjour,
j'ai voulu réaliser le tutoriel sur créer un tchat en ajax mais lorsque, à la fin, je veux poster un message, la requête n,est pas envoyer à tchatajax.php et j'aimerais savoir pourquoi mais surtout comment le régler.
Voici mon code(j'ai utilisé une autre méthode pour afficher/cacher le loader):
tchat.php:
[code]
<?php
session_start();
if(!isset($_SESSION["pseudo"]) || empty($_SESSION["pseudo"])){
header("location:index.php");
}
include "connection.php"
?>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="tchat.js"></script>
<script type="text/javascript">
<?php
$sql = "SELECT id FROM messages ORDER BY id DESC LIMIT 1";
$req = mysql_query($sql) or die(mysql_error());
$data=mysql_fetch_assoc($req);
?>
var lastid = <?php echo $data["id"]; ?>
</script>
</head>
<body>
<div id="conteneur" style="width:94%;margin-bottom:200px;">
<h1>Bienvenue, <?php echo $_SESSION["pseudo"]; ?></h1>
<div id="tchat">
<?php
$sql = "SELECT * FROM messages ORDER BY date DESC LIMIT 15";
$req = mysql_query($sql) or die(mysql_error());
$d = array();
while ($data = mysql_fetch_assoc($req)){
$d[] = $data;
}
//debut de la boucle for
//sert à mettre les éléments en ordre décroissant
for ($i=count($d)-1; $i>=0 ; $i--) {
?>
<p><strong><?php echo $d[$i]["pseudo"]; ?></strong> (<?php echo date("d/m/Y H:i:s", $d[$i]["date"]); ?>) : <?php echo htmlentities(utf8_decode($d[$i]["message"])); ?></p>
<?php
//fin de la boucle for
}
?>
</div>
</div>
<div id="tchatForm" style="position:fixed;bottom:0;width:100%;">
<form action="#" method="post">
<div style="margin-right:110px;">
<div class="loader" id="loader"><img src="loader.gif"></div>
<textarea name="message" style="width:100%;"></textarea>
</div>
<div style="position:absolute;top:12px;right:20px;">
<input type="submit" value="Envoyer">
</div>
</form>
</div>
</body>
</html>
[/code]
tchatajax.php:
[code]
<?php
session_start();
require("connection.php");
$d=array();
if(!isset($_SESSION["pseudo"]) || empty($_SESSION["pseudo"]) || !isset($_POST["action"])){
$d["erreur"] = "Vous devez être connecté pour utiliser le tchat";
}else{
extract($_POST);
$pseudo = mysql_real_escape_string($_SESSION["pseudo"]);
/**
*action: addMessage
*permet l'ajout d'un message
**/
if($_POST["action"]=="addMessage"){
$message = mysql_escape_string($message);
$sql = "INSERT INTO messages (pseudo,message,date) VALUES ('$pseudo','$message',".time().")";
mysql_query($sql) or die(mysql_error());
$d["erreur"] = "ok";
}
/**
*action: getMessage
*permet l'affichage des dernier message
**/
if($_POST["action"]=="getMessages"){
$lastid = floor($lastid);
$sql = "SELECT * FROM messages WHERE id>$lastid ORDER BY date ASC";
$req = mysql_query($sql) or die(mysql_error());
$d["result"] = "";
$d["lastid"] = $lastid;
while ($data = mysql_fetch_assoc($req)){
$d["result"] = '<p><strong>'.$data["pseudo"].'</strong> : '.htmlentities(utf8_decode($data["message"])).'</p>';
$d["lastid"] = $data["id"];
}
$d["erreur"]="ok";
}
}
echo json_encode($d);
?>
[/code]
tchat.js:
[code]
var url="tchatajax.php";
var lastid=0;
var timer = setInterval(getMessages,5000);
$(function(){
$("#loader").hide();
$("#tchatForm form").submit(function(){
clearInterval(time);
showLoader();
var message = $("#tchatForm form textarea").val();
$.post(url,{action:"addMessage",message:message},function(data){
if(data.erreur=="ok"){
getMessages();
$("#tchatForm form textarea").val("");
}else{
alert("erreur addMessage");
}
timer = setInterval(getMessages,5000);
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("erreur getMessages");
}
hideLoader();
},"json");
return false;
}
function showLoader(div){
$("#loader").fadeIn();
}
function hideLoader(div){
$("#loader").fadeOut();
}
[/code]
merci de m'aider!J'ai vraiment besoin d'aide...