Bonjour à tous.
Je réalise un chat en AJAX. Je veux passer le contenu d'une textarea dans une fonction, qui elle-même ira ensuite ajouter ce texte dans la base de donnée, accompagné du pseudo et de la date.
Quand on appuie sur le bouton Envoyer, le contenu "message" du formulaire "post" est envoyé à la fonction "do_multiply" (le nom importe peu, c'est parce que c'est bidouillé à partir d'un autre code) :
Il y a donc ensuite une partie Javascript qui prend le contenu du champ "message" et le transforme en variable "txtmessage" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <form name="post" onSubmit="do_multiply()" action=""/> <textarea name="message" id="message" rows="8" cols="50"></textarea> <input type="button" name="envoyer" value="Envoyer" onclick="do_multiply()"><br /></fieldset> </form>
Le "alert(txtmessage);" me permet de vérifier que la variable "txtmessage" existe et qu'elle contient bien le texte de la textarea.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function do_multiply() { var txtmessage = document.post.message.value; x_multiply(txtmessage); alert(txtmessage); document.post.message.value = ""; }
Donc jusqu'ici tout va bien.
Ensuite le Javascript précédent renvoi la valeur "txtmessage" à une autre fonction PHP, "multiply" :
$_SESSION['pseudo'] fonctionne bien, mais $txtmessage ici ne retourne plus rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function multiply($txtmessage) { $conv_texte = mysql_real_escape_string(nl2br(htmlspecialchars($txtmessage, ENT_QUOTES))); $conv_pseudo = mysql_real_escape_string(htmlspecialchars($_SESSION['pseudo'])); $temps = time(); mysql_query("INSERT INTO chat_prive VALUES('', '$conv_texte', '".$temps."', '$conv_pseudo')"); }
La requête MySQL enregistre bien le pseudo et le time, mais le texte du message reste vide.
Si quelqu'un pouvait m'expliquer pourquoi et ce qu'il faut que je change pour que $txtmessage contienne bien la valeur transmise (ça doit être tout bête je suis sûr, mais ça fait une heure que je galère juste sur ça...).
Merci d'avance pour vos réponses.![]()
Partager