Page 1 sur 1

Problème avec récupération d'1e variable dan 1 lien panier

Posté : 23 juin 2011, 15:21
par roymustang77
bonjour je suis plutôt un initié sur php j'ai du travailler sur un script de panier proposé par developpez.com http://jcrozier.developpez.com/articles/web/panier/
et j'ai réussi à l’insérer avec des petites modification dans mon script comme suivant exemple page sante-nature.php:
<?php
session_start();
include_once("fonctions-panier.php");
$erreur = false;
$action = (isset($_POST['action'])? $_POST['action']: (isset($_GET['action'])? $_GET['action']:null
)) ;
if($action !== null)
{
if(!in_array($action,array('ajout', 'suppression', 'refresh')))
$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 )) ;
//Suppression des espaces verticaux
$l = preg_replace('#\v#', '',$l);
//On verifie que $p soit un float
$p = floatval($p);
//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);
break;
Case "suppression":
supprimerArticle($l);
break;
Case "refresh" :
for ($i = 0 ; $i < count($QteArticle) ; $i++)
{
modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i]));
}
break;
Default:
break;
}
}
?>
lien pour ajouter un produit donné à mon panier avec l nom du produit q sa quantité et et p son prix(toujours suivant le script proposé par le site)
<a href="sante-nature.php?action=ajout&l=la sante par les produits de la nature&q=1&p=4" ></a>
et lien qui mène au panier

Code : Tout sélectionner

<a href="panier.php?action=ajout&l=LIBELLEPRODUIT&q=QUANTITEPRODUIT&p=PRIXPRODUIT" onclick="window.open(this.href, '', 'toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=yes, copyhistory=no, width=600, height=350'); return false;"> </a>
maintenant je vais vous décrire mon problème, je dois récupérer la quantité à partir d'une liste déroulante pour paramétrer mon lien c'est ce que j'ai fais dans une autre page à fin de tester (sante-nature1.php) vue que la récupération se fait au niveau client avant qu'elle soit envoyé au serveur j'ai du utiliser une fonction javascript

Code : Tout sélectionner

<script type="text/javascript"> var t=1; function InitUser(p_utilisateur) { t =p_utilisateur; } function PageMail() { self.location.href="sante-nature1.php?action=ajout&l=la sante par les produits de la nature&q="+t+"&p=4"; } </script> <SELECT name="qtelivre1" onchange="InitUser(this.value);" size="1"> <OPTION selected="selected" value="1">1</OPTION> <OPTION value="2">2</OPTION> <OPTION value="3">3</OPTION> <OPTION value="4">4</OPTION> <OPTION value="5">5</OPTION> </SELECT> <a style="CURSOR:pointer" href='#' onClick='PageMail()'; ><img src="motif panier/motif-panier.png" width="44" height="30" alt="panier" /></a>
et effectivement je parviens à récupérer la quantité du produit ajoutée depuis la liste déroulante dans l'adresse Url (elle est bien affiché dans le lien URL) mais je parviens pas à ajouter la commande dans le panier alors que dans le premier cas comme je vous ai expliqué j'ai aucun problème
merci pour votre aide je plante grave sur ça !!!!

Re: Problème avec récupération d'1e variable dan 1 lien panier

Posté : 24 juin 2011, 03:51
par devlop78
Je n'ai pas trop compris la question, mais deux remarques :

- Le produit devrait être identifié par un nombre plutôt que par son nom (ça évite les collisions, les problèmes d'accents, etc)
function PageMail()
{
self.location.href="sante-nature1.php?action=ajout&l=la sante par les produits de la nature&q="+t+"&p=4";
}
Ici, tu te trouves dans Javascript. Le & n'a donc pas sa place.