Bonjours, bonsoirs
J'ai realiser un chat en php ajax ... tout fonctionne à la perfection, sauf que mon formulaire s’exécute, malgrès mon code qui l'empeche de le faire je ne sais pas pourquoi ca ne fonctionne pas .
Se que je veut dire par << l'empeche >> , c'est d'empecher la redirection vers la page et evite un refresh de page.
Code ajax :
je vous partage uniquement la function qui permet d'ajouter un message.
function postMessage(event){
event.preventDefault();
const author = document.querySelector('#author');
const content = document.querySelector('#content');
const data = new FormData();
data.append('author', author.value);
data.append('content', content.value);
const requeteAjax = new XMLHttpRequest();
requeteAjax.open('POST', '../../../../html/ltr/coqpix/php/chat_crea.php?task=write');
requeteAjax.onload = function(){
content.value = '';
content.focus();
getMessages();
}
requeteAjax.send(data);
}
le code php qui s'execute
function postMessage(){
global $bdd;
if(!array_key_exists('author', $_POST) || !array_key_exists('content', $_POST)){
echo json_encode(["status" => "error", "message" => "One field or many not been sent"]);
return;
}
$destination = "coqpix".$_POST['author']."";
$date_crea = date("d-m-Y");
$date_h = date("H") + "1";
if($date_h == "24"){
$date_h = "00";
}
$date_m = date("i");
$content = $_POST['content'];
$query = $bdd->prepare('INSERT INTO chat_crea (destination, date_crea, date_h, date_m, message_crea) VALUES(?,?,?,?,?)');
$query->execute(array(
htmlspecialchars($destination),
htmlspecialchars($date_crea),
htmlspecialchars($date_h),
htmlspecialchars($date_m),
htmlspecialchars($content)
));
echo json_encode(["status" => "sucess"]);
}
Super avec l'option du btn_submit ca fonctionne a la perfection mais il y a un probleme , quand j'appuie sur le bouton ca marche mais quand l'appuie sur ENTER du clavier ca me ramene sur ma page php
Va falloir que tu détailles un peu mieux ....
Quand tu appuies sur la touche ENTER ... à quel moment ? Sur quel élément es tu dans ta page ?
Ca te ramène sur ta page php.. c'est à dire ? laquelle ?
J'ai essaye de faire une condition pour faire un petit truc simpas qui consiste a que quand le message vien de moi il s'affiche à droite et quand il vient d'une autre personne il s'affiche à gauche.
Dans mon css c'est la class "chat-fleft" qui fait cela mais je ne sais pas comment faire ppour introduire cela dans mon code js ?
j'ai mit une condition if pour que quand la colonne de la bdd you !== a coqpix , il y mettent la class css
Je pense que cela vient d'un problème d'inscrementation ?
Nouvelle question égale nouvelle discussion sur le forum...
En plus, réouvrir une discussion qui avait été mise comme traitée ce n'est pas la meilleure idée qu'on puisse avoir au risque que personne ne la remarque...
Donc, merci de remettre le sujet en résolu et de créer une nouvelle discussion propre à ce nouveau souci.
pour illustrer se que je veut dire j'ai fait une petite video ... je ne sais pas si c'est autoriser mais voila.
https://www.youtube.com/watch?v=akg0dhyeJ7I
Retire les attributs action et method et le souci sera résolu
J'ai essaye de faire une condition pour faire un petit truc simpas qui consiste a que quand le message vien de moi il s'affiche à droite et quand il vient d'une autre personne il s'affiche à gauche.
Dans mon css c'est la class "chat-fleft" qui fait cela mais je ne sais pas comment faire ppour introduire cela dans mon code js ?
J"ai tenté un petit truc :
j'ai mit une condition if pour que quand la colonne de la bdd you !== a coqpix , il y mettent la class css
Je pense que cela vient d'un problème d'inscrementation ?
En plus, réouvrir une discussion qui avait été mise comme traitée ce n'est pas la meilleure idée qu'on puisse avoir au risque que personne ne la remarque...
Donc, merci de remettre le sujet en résolu et de créer une nouvelle discussion propre à ce nouveau souci.