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 :

[AJAX] Variable avec Ajax


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 16
    Points : 9
    Points
    9
    Par défaut [AJAX] Variable avec Ajax
    Bonjour
    Je suis en train de développer un panier en utilisant Ajax.
    Mon problème c'est que j'aimerais récupérer une variable dans l'adresse de traitement pour que le bon div affiche le résultat:voila mon div:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="form1">
    <form name="panierform1" action="#">
    	<input type="hidden" name="q" value="1" >
    	<input type="hidden" name="p" value="2.50" >
    	<input type="hidden" name="l" value="Fleur de sel" >
    	<input type="hidden" name="d" value="0.250" >
    	<input value="Ajouter au panier" type="button" onclick="JavaScript:xmlhttpPost('panier10.php?n=1&action=ajout')">
    </form>
    <div id="result1">

    c'est la variable n que j'aimerais récupérer pour m'en servir ici:

    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
    function getquerystring() {
    	 var n = ???
        var form = document.forms['panierform' + n];
        var q = form.q.value;
        var p = form.p.value;
        var l = form.l.value;
        var d = form.d.value;
        qstr = 'q=' + q + '&l=' + l + '&p=' + p + '&d=' + d;
        // Remarque: pas de '?' avant la chaîne de requête
        return qstr;
    }
     
    function updatepage(str){
    	var n = ?????
    	var form = document.forms['panierform' + n];
    	var l = form.l.value;
    	document.getElementById('result' + n).innerHTML = str;
     
    }

    Merci d'avance pour votre aide.

  2. #2
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    bonjour
    pour plus d'information, pourrais-tu :
    - montrer la fonction xmlHttpPost()
    - montrer la page panier10.php

    aussi, dans ton onClick, tu n'es pas obligé d'indiqué Javascript: .

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 16
    Points : 9
    Points
    9
    Par défaut fichier
    ma fonction:
    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
    function xmlhttpPost(strURL) {
        var xmlHttpReq = false;
        var self = this;
        // Mozilla/Safari
        if (window.XMLHttpRequest) {
            self.xmlHttpReq = new XMLHttpRequest();
        }
        // IE
        else if (window.ActiveXObject) {
            self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        self.xmlHttpReq.open('POST', strURL, true);
        self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        self.xmlHttpReq.onreadystatechange = function() {
            if (self.xmlHttpReq.readyState == 4) {
                updatepage(self.xmlHttpReq.responseText);
            }
        }
        self.xmlHttpReq.send(getquerystring());
    }
    mon fichier panier10.php:
    Code php : 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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    <?php
    session_start();
    include_once("fonctions-panier.php");
     
    $erreur = false;
    $n = $_GET['n'] ;
    $action = (isset($_POST['action'])? $_POST['action']:  (isset($_GET['action'])? $_GET['action']:null )) ;
    if($action !== null)
    {
       if(!in_array($action,array('ajout', 'suppression', 'refresh', 'suppressionPanier')))
       $erreur=true;
     
       //récuperation des variables en POST ou GET
       $l = (isset($_POST['l'])? $_POST['l']:  (isset($_GET['l'])? $_GET['l']:null )) ;
       $p = (isset($_POST['p'])? $_POST['p']:  (isset($_GET['p'])? $_GET['p']:null )) ;
       $q = (isset($_POST['q'])? $_POST['q']:  (isset($_GET['q'])? $_GET['q']:null )) ;
       $d = (isset($_POST['d'])? $_POST['d']:  (isset($_GET['d'])? $_GET['d']:null )) ;
     
       //Suppression des espaces verticaux
       $l = preg_replace('#\v#', '',$l);
       //On verifie que $p soit un float
     
     
       //On traite $q qui peut etre un entier simple ou un tableau d'entier
     
       if (is_array($q)){
          $QteArticle = array();
          $i=0;
          foreach ($q as $contenu){
             $QteArticle[$i++] = intval($contenu);
          }
       }
       else
       $q = intval($q);
     
    }
     
    if (!$erreur){
       switch($action){
          Case "ajout":
             ajouterArticle($l,$q,$p,$d);
             break;
     
          Case "suppression":
             supprimerArticle($l);
             break;
     
          Case "refresh" :
             for ($i = 0 ; $i < count($QteArticle) ; $i++)
             {
                modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i]));
             }
             break;
          Case "suppressionPanier":
             supprimePanier();
             break;
     
          Default:
             break;
       }
    }
     
    ?>
     
    <table style="width: 400px">
    	<tr>
    		<td colspan="4">Votre panier</td>
    	</tr>
    	<tr>
    		<td>Libell&eacute;</td>
    		<td>Quantit&eacute;</td>
    		<td>Prix Unitaire</td>
    		<td>Action</td>
    	</tr>
     
     
    	<?php
    	if (creationPanier())
    	{
    	   $nbArticles=count($_SESSION['panier']['libelleProduit']);
    	   if ($nbArticles <= 0)
    	   echo "<tr><td>Votre panier est vide </ td></tr>";
    	   else
    	   {
    	      for ($i=0 ;$i < $nbArticles ; $i++)
    	      {
    	         echo "<tr>";
    	         echo "<td>".htmlspecialchars($_SESSION['panier']['libelleProduit'][$i])."</ td>";
    	         echo "<td>".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."</td>";
    	         echo "<td>".htmlspecialchars($_SESSION['panier']['prixProduit'][$i])."</td>";
    	         echo "<td></td>";
    	         echo "</tr>";
    	      }
     
    	      echo "<tr><td colspan=\"2\"> </td>";
    	      echo "<td colspan=\"2\">";
    	      echo "Total : ".MontantGlobal();
    	      echo "</td></tr>";
     
    	       echo "<tr><td colspan=\"2\"> </td>";
    	      echo "<td colspan=\"2\">";
    	      echo "Poid : ".PoidGlobal();
    	      echo "</td></tr>";
     
    	   }
    	}
    	?>
    </table>

    merci

  4. #4
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    la balise code, svp !
    et ne m'envoie pas la même chose en MP ! ^^

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 16
    Points : 9
    Points
    9
    Par défaut heu..
    trompé de bouton
    mdr
    novice sur le forum

  6. #6
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    alors si tu utilise une requête AJAX avec POST, tu dois envoyer les paramètres à part :
    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
    function xmlhttpPost(strURL,n,params) {
        var xmlHttpReq = false;
        var self = this;
        // Mozilla/Safari
        if (window.XMLHttpRequest) {
            self.xmlHttpReq = new XMLHttpRequest();
        }
        // IE
        else if (window.ActiveXObject) {
            self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        self.xmlHttpReq.open('POST', strURL, true);
        self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.setRequestHeader("Content-length", params.length);
    self.xmlHttpReq.setRequestHeader("Connection", "close");
     
        self.xmlHttpReq.onreadystatechange = function() {
            if (self.xmlHttpReq.readyState == 4) {
                updatepage(self.xmlHttpReq.responseText,n);
            }
        }
        self.xmlHttpReq.send(params);
    }
     
     
    function updatepage(str){
    	var n = ?????
    	var form = document.forms['panierform' + n];
    	var l = form.l.value;
    	document.getElementById('result' + n).innerHTML = str;
     
    }
    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlhttpPost('panier10.php',n,getquerystring()) // là, params est donnée à titre d'exemple :)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 16
    Points : 9
    Points
    9
    Par défaut balise
    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
    <script language="Javascript">
    function xmlhttpPost(strURL) {
        var xmlHttpReq = false;
        var self = this;
        // Mozilla/Safari
        if (window.XMLHttpRequest) {
            self.xmlHttpReq = new XMLHttpRequest();
        }
        // IE
        else if (window.ActiveXObject) {
            self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        self.xmlHttpReq.open('POST', strURL, true);
        self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        self.xmlHttpReq.onreadystatechange = function() {
            if (self.xmlHttpReq.readyState == 4) {
                updatepage(self.xmlHttpReq.responseText);
            }
        }
        self.xmlHttpReq.send(getquerystring());
    }
     
    function getquerystring() {
    	 var n = getParamValue('n','strURL') ;
        var form = document.forms['panierform' + n];
        var q = form.q.value;
        var p = form.p.value;
        var l = form.l.value;
        var d = form.d.value;
        qstr = 'q=' + q + '&l=' + l + '&p=' + p + '&d=' + d;
        // Remarque: pas de '?' avant la chaîne de requête
        return qstr;
    }
     
    function updatepage(str){
    	var n = getParamValue('n','strURL') ;
    	var form = document.forms['panierform' + n];
    	var l = form.l.value;
    	document.getElementById('result' + n).innerHTML = str;
     
    }
    </script>
    Je précise qu'il n'y a pas de fonction pur récup la variable.
    tous les test que j'ai fait n'ont pas marché.

  8. #8
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    Citation Envoyé par rotrevrep Voir le message
    la balise code, svp !
    et ne m'envoie pas la même chose en MP ! ^^
    euh...

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2009
    Messages : 16
    Points : 9
    Points
    9
    Par défaut re
    ok pour la balise code,
    j'avais pas bien lu les conditions d'utilisation.

    Tout d'abords, merci pour ta réponse.
    Juste un problème, dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function xmlhttpPost(strURL,n,params)
    sachant que la variable que je veux est n, à quoi sert "params"

    et mon "onClick est-il correct?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlhttpPost('panier10.php?n=1&action=ajout',n,getquerystring())
    merci

  10. #10
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    regarde mon poste à #6, params sont les paramètres à envoyer en POST. donc toi quand tu utilise la fonction, tu mettras getquerystring()

Discussions similaires

  1. [AJAX] Récupération de variable avec Ajax dans Wordpress
    Par kaelig dans le forum jQuery
    Réponses: 14
    Dernier message: 03/11/2014, 11h05
  2. [AJAX] Récupération de variable avec Ajax
    Par cyrella99 dans le forum AJAX
    Réponses: 8
    Dernier message: 08/03/2012, 06h39
  3. Réponses: 4
    Dernier message: 10/12/2010, 11h58
  4. Réponses: 1
    Dernier message: 04/03/2009, 14h41
  5. [AJAX] variable avec fichier XML
    Par Lilliputien dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/09/2008, 11h47

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