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

Langage PHP Discussion :

Panier + session (ajout de produit)


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Points : 94
    Points
    94
    Par défaut Panier + session (ajout de produit)
    Bonjour.

    Je suis en train de faire quelques tests sur php5 et la POO.

    J'ai une classe panier toute simple comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Panier implements SeekableIterator, Countable{
    private $position = 0;
    private $array = array();
    ....
    public function ajouter(Produits $prod){
    		$this->array[] = $prod;
     
    	}
    Ensuite j'ai une classe Produits qui n'a pas grande importance.

    Sur une page j'affiche la liste de tout mes produits, avec le contenu de mon panier (var_dump(@$_SESSION['panier']) avec un lien permettant d'ajouter un produit au panier (addbasket.php).

    Dans mon addbasket je fais ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //création de mon panier
    $panier = new Panier();
    //création de la variable de session si elle n'existe pas
    if (!isset($_SESSION['panier'])) { $_SESSION['panier']=array();
     
    ...
     
    //ajout du produit dans mon panier
    //mon produit est correctement formé, aucun problème du côté de $produit
    $panier->ajouter($produit);
     
    //mise à jour du panier en session
    $_SESSION['panier'] = $panier;
    Chaque fois que je retourne sur la page qui affiche la liste des produits et mon panier, je ne vois chaque fois que le dernier produit ajouté et non un panier qui s'incrémente de chaque produit ajouté.

    Avez vous des idées?

    Merci.

  2. #2
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    Oh que oui j'ai une belle idée

    Tu as mis ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //création de mon panier
    $panier = new Panier();
    //création de la variable de session si elle n'existe pas
    if (!isset($_SESSION['panier'])) { $_SESSION['panier']=array();
     
    ...
     
    //ajout du produit dans mon panier
    //mon produit est correctement formé, aucun problème du côté de $produit
    $panier->ajouter($produit);
     
    //mise à jour du panier en session
    $_SESSION['panier'] = $panier;
    Si tu remarques bien tu crées un objet panier à chaque fois. Et c'est dans celui ci que tu fait le ajouter. Ensuite tu met ce nouvel objet en session. A aucun moment tu prends l'objet de session pour lui ajouter un produit

    En gros voila ce que tu devrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //création de mon panier
     
    //création de la variable de session si elle n'existe pas
    if (!isset($_SESSION['panier'])) { $_SESSION['panier']= new Panier();}
    $panier = $_SESSION['panier'];
     
    ...
     
    //ajout du produit dans mon panier
    //mon produit est correctement formé, aucun problème du côté de $produit
    $panier->ajouter($produit);
     
    //mise à jour du panier en session
    $_SESSION['panier'] = $panier; //logiquement pas nécessaire
    Smiley de Plomb 2009
    Anciennement FrancoisIT

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Points : 94
    Points
    94
    Par défaut
    Effectivement.

    Merci à toi.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2015, 22h08
  2. [ SESSION ] Ajout au panier
    Par Tchinkatchuk dans le forum Flash/Flex
    Réponses: 4
    Dernier message: 22/09/2011, 11h12
  3. Réponses: 5
    Dernier message: 17/04/2009, 15h12
  4. [Conception] Ajout des produits dans un panier
    Par ghyosmik dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/09/2006, 11h17
  5. Gestion d'un panier: session et bouton précédent
    Par renaud26 dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2006, 18h31

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