Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1497 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Passer une variable dans une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passer une variable dans une fonction

n°1630543
Zoltan32
Posté le 24-10-2007 à 23:27:59  profilanswer
 

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 :D ) :

Code :
  1. <form name="post" onSubmit="do_multiply()" action=""/>
  2. <textarea name="message" id="message" rows="8" cols="50"></textarea>
  3. <input type="button" name="envoyer" value="Envoyer" onclick="do_multiply()"><br /></fieldset>
  4. </form>


Il y a donc ensuite une partie Javascript qui prend le contenu du champ "message" et le transforme en variable "txtmessage" :

Code :
  1. function do_multiply() {
  2.  var txtmessage = document.post.message.value;
  3.  x_multiply(txtmessage);
  4.  alert(txtmessage);
  5.  document.post.message.value = "";
  6. }


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. :sol:  
 
Ensuite le Javascript précédent renvoi la valeur "txtmessage" à une autre fonction PHP, "multiply" :

Code :
  1. function multiply($txtmessage) {
  2. $conv_texte = mysql_real_escape_string(nl2br(htmlspecialchars($txtmessage, ENT_QUOTES)));
  3. $conv_pseudo = mysql_real_escape_string(htmlspecialchars($_SESSION['pseudo']));
  4. $temps = time();
  5. mysql_query("INSERT INTO chat_prive VALUES('', '$conv_texte', '".$temps."', '$conv_pseudo')" );
  6. }


$_SESSION['pseudo'] fonctionne bien, mais $txtmessage ici ne retourne plus rien. :heink:  
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 :D , mais ça fait une heure que je galère juste sur ça...).
Merci d'avance pour vos réponses. ;)

mood
Publicité
Posté le 24-10-2007 à 23:27:59  profilanswer
 

n°1630547
gzii
court-circuit
Posté le 24-10-2007 à 23:36:28  profilanswer
 

Connais pas grand chose à ça alors je peux me planter :
La valeur de la variable javascript pourrait se retrouver dans le php ?!
Je ne comprends pas comment. Le javascript s'exécute sur le client et le php sur le serveur non ?
Ou alors on la fait passer sur validation d'un truc, en post.


Message édité par gzii le 24-10-2007 à 23:37:02
n°1630551
Zoltan32
Posté le 24-10-2007 à 23:52:48  profilanswer
 

Moi aussi je peux me tromper mais ce n'est pas justement le principe de l'AJAX de faire que client et serveur reste connectés?
 
Le code sur lequel je me suis basé (et qui fonctionne bien entendu :D ) :
 
Javascript :

Code :
  1. function do_multiply() {
  2.  // get the folder name
  3.  var x, y;
  4.  x = document.getElementById("x" ).value;
  5.  y = document.getElementById("y" ).value;
  6.  x_multiply(x, y, do_multiply_cb);
  7. }


PHP :

Code :
  1. function multiply($x, $y) {
  2.  return $x * $y;
  3. }


 
Chez eux ça ne pose pas de problème.
Leur code complet (pour les curieux :D ) : http://www.modernmethod.com/sajax/ [...] ly.php.txt


Message édité par Zoltan32 le 25-10-2007 à 00:04:42
n°1630574
FlyPhp
Posté le 25-10-2007 à 00:46:39  profilanswer
 

Ajax ne permet pas que le client et le serveur reste connecté. Ajax sert juste à faire des requetes get ou post au serveur afin de ne raffraichir qu'une partie de la page.
 
Si tu veux qu'une variable javascript soit envoyé au php, il faut l'envoyer à l'aide d'une requete ajax dans laquelle tu passerais ta variable en get ou en post.
 
Je ne vois pas ou tu utilises ajax là  :heink:
Peut etre dans le x_multiply() mais faudrait que tu me postes ta fonction.


Message édité par FlyPhp le 25-10-2007 à 00:48:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Passer une variable dans une fonction

 

Sujets relatifs
Interface GTK2 - Fonction zoom sur liste[Résolu] Fonction allergique à une requête MySQL
Passer une liste a une fonction?valeur variable et fixe imbriqué
Uploader un fichier sans passer par Parcourirtexarea name avec une variable
[Batch-Xp] Probleme de variable...[Batch-XP] "Unseter" une variable ?
Passer un évènement en paramètre de fonction[VB.net] Comment passer un Array String a une fonction sans variable
Plus de sujets relatifs à : Passer une variable dans une fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR