Problème envoie message BDD [Résolu]

RealTFA 27 Messages postés samedi 17 mai 2014Date d'inscription 4 novembre 2015 Dernière intervention - 13 nov. 2014 à 22:51 - Dernière réponse : jordane45 22741 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 10 octobre 2018 Dernière intervention
- 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!
Afficher la suite 

Votre réponse

4 réponses

jordane45 22741 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 10 octobre 2018 Dernière intervention - 13 nov. 2014 à 23:19
0
Merci
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);
      }
   });





jordane45 22741 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 10 octobre 2018 Dernière intervention - 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.
Commenter la réponse de jordane45
RealTFA 27 Messages postés samedi 17 mai 2014Date d'inscription 4 novembre 2015 Dernière intervention - 18 nov. 2014 à 22:33
0
Merci
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!
Commenter la réponse de RealTFA
jordane45 22741 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 10 octobre 2018 Dernière intervention - 18 nov. 2014 à 22:45
0
Merci
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 !!!
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.