IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] passage de valeur pour une page php depuis un formulaire


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 56
    Points
    56
    Par défaut [AJAX] passage de valeur pour une page php depuis un formulaire
    Bonjour!
    Je me met à l'ajax, c'est pa mal du tout!
    J'en suis à mes débuts.

    En ce moment à récupérer des valeurs de input pour les passer à une page php par l'intermédiaire d'un fichier javascript.

    Le problème c'est que la page php ne recoit pas le contenue de mes variable!

    Voici mon code html (plutot simple!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method='POST' action='chat.php' name='formulaireenvoi'>
    <input name='namemsg' id='idmsg' type='text'>
    <input name='namepseudo' id='idpseudo' type='hidden' value='$pseudoEnCour'>
    <input type='button' value='envoyer' onclick='javascript:envoyermessage(\"./envoyermessagechat.php\",\"idmsg\");'>
    </form>
    Au niveau de mon javascript voici les fonctions utiles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    function donnees_formatees()
    {
      var formulaire=document.forms['formulaireenvoi'];
      //Valeur de mon formulaire de type texte :
      var namemsg=formulaire.namemsg.value;
      var namepseudo=formulaire.namepseudo.value;
      //Mise en place des données au format post :
      donneesformatees='messagephp='+escape(namemsg)+'&pseudophp='+escape(namepseudo);
      alert(donneesformatees);
      return donneesformatees;
    }
     
    function envoyermessage(url,cadre)
    {
      //Création de l'objet xhr-----------------------------------------------------
      var xhr= null;
      if(window.XMLHttpRequest) // Firefox
      {  xhr= new XMLHttpRequest(); }
      else if(window.ActiveXObject) // Internet Explorer
      {  xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
      else
      { // XMLHttpRequest non supporté par le navigateur
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
       return;
      }
      //----------------------------------------------------------------------------
     
      //Ouvre la connexion au serveur en précisant le type de données :
      xhr.open('POST',url,true);
      //On associe à une varible un contenue, ici pour le contenu de la page :
      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
     
      // On regarde les changement d'état de l'objet xhr
      xhr.onreadystatechange = function attente(){  // l'état est à 4, requête reçu !
                                                    if(xhr.readyState == 4)
                                                   {  // ecriture de la réponse
                                                     document.getElementById(cadre).innerHTML = xhr.responseText;
                                                   //alert(xhr.responseText);
                                                   }
                                                 }
     
      // Envoi la requete xhr au serveur :
      xhr.send(donnees_formatees());
     
      //remise à 0 de l'état du formulaire
      document.getElementById(cadre).value='';
      document.getElementById(cadre).focus();
      return;
    }
    note : quand je fait
    alert(donneesformatees) j'obtient bien le nom des variables et les valeurs théoriques qu'elles doivent avoir.
    par contre pour alert(xhr.responseText); j'ai le message : undefined variable messagephp ... undefined variable pseudophp...

    Le code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $message=mysql_real_escape_string($messagephp);
    $dh=date('Y-m-d H:i:s');
     
    $pseudo=mysql_real_escape_string($pseudophp);
     
       $sql_insert_msg="INSERT INTO message_chat (dh_msgchat,contenu_msgchat,pseudo_emetteur) VALUES ('$dh','$message','$pseudo')";
        $rep_insert_msg=mysql_query($sql_insert_msg) or die('Problème sql 02, chat actuellement indisponible');
    Auriez vous une idée?
    Merci!

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Ministar Voir le message
    par contre pour alert(xhr.responseText); j'ai le message : undefined variable messagephp ... undefined variable pseudophp...
    Suivant ta version de PHP, récuperer une variable PHP, ça sera plutot
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_POST['messagephp']

    Tu es sous quelle version de PHP?

  3. #3
    Membre du Club Avatar de Ministar
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 56
    Points
    56
    Par défaut
    ok, quel boulet
    Je pense que l'ajax faisait le traitement du $_POST[] automatiquement et qu'il n'y avais plus qu'a récupéré la variable!
    Ca marche maintenant!
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.1] Passer de 3 fichiers à un seul pour une page PHP
    Par MarylouTe dans le forum Langage
    Réponses: 3
    Dernier message: 02/05/2014, 20h13
  2. Des Boutton Flash pour une page php
    Par Iori Yagami dans le forum Flash
    Réponses: 5
    Dernier message: 14/10/2007, 21h29
  3. Passage de valeur d'une page à l'autre
    Par DJuL- dans le forum ASP.NET
    Réponses: 21
    Dernier message: 20/07/2007, 09h59
  4. 404 pour une page php avec serveur domino
    Par Ouach dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 22/06/2007, 11h31
  5. Réponses: 4
    Dernier message: 11/08/2006, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo