Problème envoie message BDD

Résolu
RealTFA Messages postés 27 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 4 novembre 2015 - 13 nov. 2014 à 22:51
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 18 nov. 2014 à 22:45
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
13 nov. 2014 à 23:19
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);
      }
   });





0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
13 nov. 2014 à 23:28
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.
0
RealTFA Messages postés 27 Date d'inscription samedi 17 mai 2014 Statut Membre Dernière intervention 4 novembre 2015
18 nov. 2014 à 22:33
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!
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
18 nov. 2014 à 22:45
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 !!!
0
Rejoignez-nous