Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/01/2012, 08h26   #1
Invité de passage
 
Homme laurent tuaillon
Développeur Web
Inscription : novembre 2009
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme laurent tuaillon

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2009
Messages : 16
Points : 4
Points : 4
Par défaut Problème 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 :
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 :
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.
lau17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 09h28   #2
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
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: .
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 09h54   #3
Invité de passage
 
Homme laurent tuaillon
Développeur Web
Inscription : novembre 2009
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme laurent tuaillon

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2009
Messages : 16
Points : 4
Points : 4
Par défaut fichier

ma fonction:
Code :
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 :
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
lau17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 09h57   #4
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
la balise code, svp !
et ne m'envoie pas la même chose en MP ! ^^
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 09h59   #5
Invité de passage
 
Homme laurent tuaillon
Développeur Web
Inscription : novembre 2009
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme laurent tuaillon

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2009
Messages : 16
Points : 4
Points : 4
Par défaut heu..

trompé de bouton
mdr
novice sur le forum
lau17 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/01/2012, 10h08   #6
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
alors si tu utilise une requête AJAX avec POST, tu dois envoyer les paramètres à part :
Code :
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 :
xmlhttpPost('panier10.php',n,getquerystring()) // là, params est donnée à titre d'exemple :)
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 10h11   #7
Invité de passage
 
Homme laurent tuaillon
Développeur Web
Inscription : novembre 2009
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme laurent tuaillon

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2009
Messages : 16
Points : 4
Points : 4
Par défaut balise

Code :
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é.
lau17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 10h14   #8
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
Citation:
Envoyé par rotrevrep Voir le message
la balise code, svp !
et ne m'envoie pas la même chose en MP ! ^^
euh...
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 10h49   #9
Invité de passage
 
Homme laurent tuaillon
Développeur Web
Inscription : novembre 2009
Messages : 16
Détails du profil
Informations personnelles :
Nom : Homme laurent tuaillon

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2009
Messages : 16
Points : 4
Points : 4
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 :
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 :
xmlhttpPost('panier10.php?n=1&action=ajout',n,getquerystring())
merci
lau17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 11h16   #10
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
regarde mon poste à #6, params sont les paramètres à envoyer en POST. donc toi quand tu utilise la fonction, tu mettras getquerystring()
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h49.


 
 
 
 
Partenaires

Hébergement Web