Problème envoie message BDD [Résolu]

Signaler
Messages postés
27
Date d'inscription
samedi 17 mai 2014
Statut
Membre
Dernière intervention
4 novembre 2015
-
Messages postés
31606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
-
Bonjour,

J'ai un problème lors de l'envoie de ma requête a la BDD pour envoyer un message. Voila le code de ma page "tchat.js" :
var url="tchatAjax.php";
var lastid=0;
var timer = setInterval(getMessages,5000);
var ctimer = setInterval(getConnected,10000);

$(function() {
getConnected():
$("#tchatForm form").submit(function(){
clearInterval(timer)
showLoader("#tchatForm");
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(data.erreur);
}
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(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;
}



function showLoader(div){
$(div).append('<div class="loader"></div>');
$(".loader").fadeTo(500,0.6);
}



function hideLoader(div){
$(".loader").fadeOut(500,function(){
$(".loader").remove();
});
}


Et voilà ma page "tchatAjax.php" :
<?php
session_start();
require("connect.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_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 : getMessages
* Permet l'affichage des derniers messages
* */
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> ('.date("d/m/Y H:i:s",$data["date"]).') : '.htmlentities(utf8_decode($data["message"])).'</p>';
$d["lastid"] = $data["id"];
}
$d["erreur"]="ok";
}


/**
* Action : getConnected
* Permet l'affichage des derniers connectés
**/
if ($_POST["action"]=="getConnected") {
$now = time();
$sql = "SELECT pseudo FROM connected WHERE $now-date<60";
$req mysql_query($sql) or die(mysql_error());
$d["result"] = "Connectés";
while ($data = mysql_fetch_assoc($req)) {
$d["result"] .= $data["pseudo"].",";
}
$d["result"] = substr($d["result"],0,-1);

$sql = "UPDATE connected SET date = $now WHERE id={$_SESSION["idTchat"]}";
mysql_query($sql) or die(mysql_error());

$d["erreur"]="ok";
}


}



echo json_encode($d);
?>


Merci d'avance!

3 réponses

Messages postés
31606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
344
Bonjour
J'ai un problème lors de l'envoie de ma requête a la BDD

Et donc.. quel problème exactement ?

As tu regardé avec les outils de debogage de ton navigateur internet ce que ton AJAX donnait ? Quelles données sont transmises.. quel resultat il retourne ?
Je te conseille, si tu ne l'as pas déjà.. d'installer le plugin FireBug ( pour FireFox).. de le lancer..puis de lancer ton script et regarder dans la "console" ce que tu obtiens....
En général l'explication du souci s'y trouve....

Et quit à faire de l'ajax via Jquery.. je t'invite également à utiliser cette syntaxe :

    $.ajax({
      type: "POST"
      , url: url
      , dataType: "json"
      , data: "action=addMessage",
               "&message="+message
      , success: function (data) {
         // Ici ton code en cas de succès
         if (data.erreur=="ok") {
           getMessages();
           $("#tchatForm form textarea").val("");
         } else {
            alert(data.erreur);
         }
         timer = setInterval(getMessages,5000);
         hideLoader();
      }
      , error: function (xhr, ajaxOptions, thrownError) {
         //En cas d'erreur....
        alert(xhr.status);
        alert(thrownError);
      }
   });





Messages postés
31606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
344
Au passage.... Tu as d'autres discussions encore ouvertes : par exemple celle ci : http://codes-sources.commentcamarche.net/forum/affich-10028849-aide-parse-error-syntax-error-unexpected-t-if-on-line-3....
Pourrais tu repasser dessus et, si le souci est réglé.. mettre la discussion en RÉSOLUE (lien se trouvant SOUS le titre de ta question...)
Merci.
Messages postés
27
Date d'inscription
samedi 17 mai 2014
Statut
Membre
Dernière intervention
4 novembre 2015

Oui, merci, j'ai déjà essayé de deboguer mon script, mais je n'y vois aucune erreur.
Je vous invite à essayer mon code sur mon site, peut-être y verrai vous une erreur?
L'erreur est que lorsque j'envoie le message, il ne rentre pas dans la BDD.
Voici mon site: http://realtfa.comze.com/tchat/index.php

Merci d'avance!
Messages postés
31606
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mars 2021
344
Tu ne vois pas d'erreur ??????
Heuuu.... tu es sûr d'avoir, comme je te l'ai dit, installé ( ET UTILISE) Firebug ( ou ton debogeur de ton navigateur internet) ???

Par ce que moi.. je vais sur ton site.. je tape un pseudo .. et hop j'obtiens des erreurs :




L'erreur est que lorsque j'envoie le message, il ne rentre pas dans la BDD.

Donc.. commence par corriger tes erreurs Javascript ... et ensuite fais vraiment du débogage sur ton site...
J'ai l'impression que ton Jquery n'est pas chargé....
Tu as pris quelle version ?


EDIT :je viens de regarder ton fichier jquery.js ... ce n'est pas JQUERY !
Tu y as mis du code html ....... ça ne peut pas fonctionner !!!