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
) :
Code :
- <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>
|
Il y a donc ensuite une partie Javascript qui prend le contenu du champ "message" et le transforme en variable "txtmessage" :
Code :
- function do_multiply() {
- var txtmessage = document.post.message.value;
- x_multiply(txtmessage);
- alert(txtmessage);
- document.post.message.value = "";
- }
|
Le "alert(txtmessage);" me permet de vérifier que la variable "txtmessage" existe et qu'elle contient bien le texte de la textarea.
Donc jusqu'ici tout va bien.
Ensuite le Javascript précédent renvoi la valeur "txtmessage" à une autre fonction PHP, "multiply" :
Code :
- 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')" );
- }
|
$_SESSION['pseudo'] fonctionne bien, mais $txtmessage ici ne retourne plus rien.
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.