Afficher mon message enregistré au préalable dans mon tchat box
aldofkr
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour ami développeur,
j'ai un blocage sur mon code jquery. je voudrais que le message que j'envoie dans ma base de données affiche aussi automatiquement dans mon tchat box. voici le code
ensuite la code php qui récupère mes messages depuis la base de données:
je précise que cela fonction et qu'il recupère le dernier message. enfin mon code jquery qui doit en principe fait afficher ce message d&ans la tchat box:
juste au niveau de la ligne où il y a "append", il est censé ajouter ce dernier message dans ma <div class="msg2"></div>. mais ça ne marche pas. je voudrais avoir votre expertise sur la chose. merci
j'ai un blocage sur mon code jquery. je voudrais que le message que j'envoie dans ma base de données affiche aussi automatiquement dans mon tchat box. voici le code
<div class="chat" id="popup" > <div class="chat_head">Assistance <button data-widget="remove" id="removeClass" style="background:#FF9933; border:none;" class="chat-header-button pull-right" type="button"><span class="glyphicon glyphicon-off"></span></button> </div> <form method="post" class="tchat"> <?php if(!empty($_SESSION['pseudo'])): ?> <div class="chat_body"> <div class="chat_body"> <?php foreach ($result as $res): ?> <div class="msg2"> <?= htmlentities($res->message); ?> </div> <?php endforeach; ?> </div> </div> <?php else: ?> <div class="form-group"> <input class="form-control" placeholder="pseudo" type="text" name="pseudo"> </div> <div class="chat_body" style="height:200px;"> <div class="msg_insert"> </div> </div> <?php endif; ?> <div class="chat_foot"> <textarea class="msg_input" placeholder="Message" rows="3" name="message"></textarea> <button type="button" id="envoyer" class="btn btn-primary form-control"><span class="glyphicon glyphicon-send"></span></button> </div> </form> </div>
ensuite la code php qui récupère mes messages depuis la base de données:
<?php $d = array(); $d['result'] = ""; if ($_POST['action'] == "affichmsg"){ $_POST['lastid']=floor($_POST['lastid']); $lastid = $_POST['lastid']; $req= $pdo->prepare("SELECT * FROM message WHERE idmsg > $lastid ORDER BY date ASC"); $req -> execute(); $res= $req -> fetchAll(); foreach($res as $result){ $d['result'] .= htmlentities($result -> message); } $d['erreur'] = "ok"; } ?>
je précise que cela fonction et qu'il recupère le dernier message. enfin mon code jquery qui doit en principe fait afficher ce message d&ans la tchat box:
function affichmsg(){ $.ajax({ type: "POST", url: "fonction-chat.php", datatype: "json", data: {action:"affichmsg",pseudo:"",lastid:lastid}, success: function(data){ if(data.erreur = "ok"){ $('.tchat .msg2').append(data.result) }else{ alert('pas ok'); } } }) return false; }
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :ICIMerci d'y penser dans tes prochains messages.Jordane45 |
juste au niveau de la ligne où il y a "append", il est censé ajouter ce dernier message dans ma <div class="msg2"></div>. mais ça ne marche pas. je voudrais avoir votre expertise sur la chose. merci
A voir également:
- Afficher mon message enregistré au préalable dans mon tchat box
- Tchat gratuit - Accueil - Réseaux sociaux
- Coco tchat - Accueil - Réseaux sociaux
- Recuperer message whatsapp supprimé - Guide
- Message supprimé whatsapp - Guide
- Message absence thunderbird - Guide
3 réponses
Bonjour,
As tu vérifié dans la console de ton navigateur si il n'y avait pas d'erreur ,
As tu regardé via un console.log ce que te retourne ta variable data dans le success ?
Au passage, msg2 est un enfant de chat_body lui même enfant d'un autre chat_body lui même enfant de tchat ...
Pourquoi ne pas simplement faire :
Ou mieux..; mettre un ID à ta div et l’appeler depuis cet ID au lieu d'utiliser une class.
As tu vérifié dans la console de ton navigateur si il n'y avait pas d'erreur ,
As tu regardé via un console.log ce que te retourne ta variable data dans le success ?
Au passage, msg2 est un enfant de chat_body lui même enfant d'un autre chat_body lui même enfant de tchat ...
Pourquoi ne pas simplement faire :
$('.msg2').append(data.result) ..
Ou mieux..; mettre un ID à ta div et l’appeler depuis cet ID au lieu d'utiliser une class.
Bonjour,
Tu as mis un = simple, au lieu d'un double ==
Xavier
if(data.erreur = "ok"){ $('.tchat .msg2').append(data.result) }else{ alert('pas ok'); }
Tu as mis un = simple, au lieu d'un double ==
Xavier
As tu fais ce que je t'ai demandé à savoir afficher le contenu de tes variables dans la console de ton navigateur en ajoutant des console.log ?
Au passage, active la gestion des erreurs PDO dans ton code et place ta requête dans un bloc try/catch
voir ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
.
Au passage, active la gestion des erreurs PDO dans ton code et place ta requête dans un bloc try/catch
voir ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
.
Au passage.. il te manque :
- Le retour des variables
- La connexion à ta bdd
Voici :
- Le retour des variables
- La connexion à ta bdd
Voici :
<?php //activation de l'affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion à la bdd require_once "ton_fichier_de_connexion_a_ta_bdd.php"; //initialisation des variables $d = array(); //récupération PROPRE des variables AVANT de les utiliser $action = !empty($_POST['action']) ? $_POST['action'] : NULL; $lastid = !empty($_POST['lastid']) ? $_POST['lastid'] : NULL; //début du traitement if ($action == "affichmsg"){ $sql = "SELECT * FROM message WHERE idmsg > :lastid ORDER BY date ASC"; $datas = array(':lastid'=>$lastid); //Execution de la requete try{ $req = $bdd -> prepare($sql) ; $req->execute($datas); $res = $req->fetchAll(); foreach($res as $result){ $d['result'] .= htmlentities($result -> message); } $d['erreur'] = "ok"; }catch(Exception $e){ // en cas d'erreur : $d['erreur'] = " Erreur ! ".$e->getMessage(); } }else{ $d['erreur'] = 'Action inconnue'; } //retourne les variables echo json_encode($result); ?>
D'après ta capture .. ta variable ne contient rien hormis le erreur
On va donc ajouter du debug dans ton PHP ...
On va donc ajouter du debug dans ton PHP ...
<?php //activation de l'affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion à la bdd require_once "ton_fichier_de_connexion_a_ta_bdd.php"; //initialisation des variables $d = array(); //récupération PROPRE des variables AVANT de les utiliser $action = !empty($_POST['action']) ? $_POST['action'] : NULL; $lastid = !empty($_POST['lastid']) ? $_POST['lastid'] : NULL; //début du traitement if ($action == "affichmsg"){ $sql = "SELECT * FROM message WHERE idmsg > :lastid ORDER BY date ASC"; $datas = array(':lastid'=>$lastid); //Execution de la requete try{ $req = $bdd -> prepare($sql) ; $req->execute($datas); $res = $req->fetchAll(); if(!empty($res)){ foreach($res as $result){ $d['result'] .= htmlentities($result -> message); } $d['erreur'] = "ok"; }else{ $d['erreur'] = "Erreur ! La requête n'a rien retournée... "; } }catch(Exception $e){ // en cas d'erreur : $d['erreur'] = " Erreur ! ".$e->getMessage(); } }else{ $d['erreur'] = 'Action inconnue'; } $d['debug'] = array('POST'=>$_POST,'QUERY'=>$sql); //retourne les variables echo json_encode($d); ?>