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

AJAX Discussion :

Envoi de plusieurs variables POST avec Ajax


Sujet :

AJAX

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 257
    Points : 97
    Points
    97
    Par défaut Envoi de plusieurs variables POST avec Ajax
    Bonjour,
    Après qqls temps à m'être 'battu', j'ai réussi à entrer une variable POST dans une SESSION avec Ajax, Trop bien !

    Par contre, je n'arrive pas à envoyer une deuxième variable.
    Je pense que cela doit provenir de la syntaxe de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xhr.send("Format="+Letype, "Quantite="+Qte);
    Voici la page principale:
    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
    <?php session_start();
    print_r($_SESSION);
    ?>
    <html>
    <head>
    <script type="text/javascript">
    function submitForm(Letype,Qte)
    { 
        var xhr; 
        try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
        catch (e) 
        {
            try {   xhr = new ActiveXObject('Microsoft.XMLHTTP'); }
            catch (e2) 
            {
               try {  xhr = new XMLHttpRequest();  }
               catch (e3) {  xhr = false;   }
             }
        }
     
        xhr.onreadystatechange  = function(Letype,Qte) 
        { 
           if(xhr.readyState  == 4)
           {
            if(xhr.status  == 200) 
                document.ajax.dyn="Received:"  + xhr.responseText; 
            else
                document.ajax.dyn="Error code " + xhr.status;
            }
        }; 
      xhr.open("POST", "data.php",  true); 
      xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xhr.send("Format="+Letype, "Quantite="+Qte); 
    } 
    </script>
    </head>
     
    <body>
    <FORM method="POST" name="ajax" action="">
    Format <INPUT type="text" name="Format"  id="Format"><br/>
    Quantite <INPUT type="text" name="Quantite"  id="Quantite"><br/>
    <INPUT type="BUTTON" value="Submit"  onClick="submitForm(document.getElementById('Format').value, document.getElementById('Quantite').value);">
    </FORM>
     
    </body>
    </html>
    Et la page de traitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	<?php session_start();?>
    	<?php 
            if (!ISSET($_SESSION['Format'])) {$_SESSION['Format'] = $_POST['Format'].'|';} 
                                    else {$_SESSION['Format'].=$_POST['Format'].'|';}
     
            if (!ISSET($_SESSION['Quantite'])) {$_SESSION['Quantite'] = $_POST['Quantite'];} 
                                    else {$_SESSION['Quantite'] = $_SESSION['Quantite'] + $_POST['Quantite'];}
     
            ?>
    J'ai essayé différentes concaténations, sans résultat.

    C'est deux phrases fonctionnent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     xhr.send("Quantite="+Qte);
     xhr.send("Format="+Letype);
    Mais ensemble cela ne marche plus.

    Qu'en pensez-vous ?
    "Ils ne savaient pas que c'était impossible, alors ils l'ont fait." Mark Twain

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    peut être qu'un traditionnel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var param = "Format=" +Letype +"&Quantite=" +Qte; // avec  & séparateur de paramètres
    xhr.send( param);
    serait suffisant

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 257
    Points : 97
    Points
    97
    Par défaut
    Tout à fait il me manquait les esperluettes "&"

    Merci !
    "Ils ne savaient pas que c'était impossible, alors ils l'ont fait." Mark Twain

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

Discussions similaires

  1. Envoi de plusieurs variables inconnues avec ajax
    Par yann18 dans le forum jQuery
    Réponses: 2
    Dernier message: 27/05/2010, 15h44
  2. Passer plusieurs variables sensibles avec header
    Par pasc06 dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2008, 23h51
  3. [AJAX] Rafraichir variable php avec ajax
    Par sff dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 02/04/2008, 15h01
  4. [ATOS] Réception variable POST avec paiement Atos
    Par rogerlenoir dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 05/10/2007, 20h47
  5. [Debutant] envoi d'un message POST avec une URL
    Par Yannos94 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 14/06/2006, 10h22

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