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 &ecirc;tre connect&eacute; 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...

Aucune réponse