Sytème de panier problème actualisation (PHP)
Résolu/Fermé
Programming_018
Messages postés
106
Date d'inscription
vendredi 13 janvier 2017
Statut
Membre
Dernière intervention
14 mars 2024
-
17 déc. 2018 à 12:45
Programming_018 Messages postés 106 Date d'inscription vendredi 13 janvier 2017 Statut Membre Dernière intervention 14 mars 2024 - 18 déc. 2018 à 10:31
Programming_018 Messages postés 106 Date d'inscription vendredi 13 janvier 2017 Statut Membre Dernière intervention 14 mars 2024 - 18 déc. 2018 à 10:31
A voir également:
- Panier php débutant
- Easy php - Télécharger - Divers Web & Internet
- Zalando impossible de mettre dans le panier ✓ - Forum Réseaux sociaux
- Cdiscount mon panier - Forum Réseaux sociaux
- Cdiscount mon compte mon panier ✓ - Forum Consommation & Internet
- Php natif - Forum PHP
2 réponses
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
17 déc. 2018 à 13:57
17 déc. 2018 à 13:57
Bonjour,
Déjà.. tu n'as aucun code JAVA.
Ton code.. c'est du JavaScript ( Java et Javascript sont deux langages différents !)
Ensuite, ta variable de session devrait ressembler à ceci (tu l'as conçue à l'envers... )
Ainsi, pour chaque produit, tu pourrais gérer les informations qui le concerne. Comme la quantité par exemple.
Pour le produit dont l'id serait 99..
Déjà.. tu n'as aucun code JAVA.
Ton code.. c'est du JavaScript ( Java et Javascript sont deux langages différents !)
Ensuite, ta variable de session devrait ressembler à ceci (tu l'as conçue à l'envers... )
Array( "panier"=>Array( "1"=>Array( "id"=>1, "libelle"=> "mon produit 1", "qte" => 5 "prix_unitaire"=> 17 ), "99"=>Array( "id"=>99, "libelle"=> "Un autre produit", "qte" => 1 "prix_unitaire"=> 10 ) ) )
Ainsi, pour chaque produit, tu pourrais gérer les informations qui le concerne. Comme la quantité par exemple.
Pour le produit dont l'id serait 99..
//on récupère le panier si il existe $panier= !empty($_SESSION['panier']) ? $_SESSION['panier'] : NULL; $idcherche = 99; //on récupère le produit dans le pannier dont l'id est égale = $idcherche $monProduit = !empty($panier[$idcherche]) ? $panier[$idcherche] : NULL; //on récupère la quantité du produit cherché, sinon on met 0 $qantite = !empty($monProduit['qte']) ? $monProduit['qte'] : 0;
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
18 déc. 2018 à 09:55
18 déc. 2018 à 09:55
J'avais quelques minutes à perdre... j'en ai profité pour créer une class PHP pour gérer un panier en sessions.
Et voici un exemple pour l'utiliser
<?php /** * FICHIER : cart.class.php * */ class cart{ /** * Constructeur de la class */ function __construct(){ // Démarrage des sessions si pas déjà démarrées if (session_status() == PHP_SESSION_NONE) { session_start(); } $this->initCart(); } /** *Initialisation du panier */ public function initCart(){ $_SESSION['panier'] = array(); } /** * Retourne le contenu du panier */ public function getList(){ return !empty($_SESSION['panier']) ? $_SESSION['panier'] : NULL; } /** * Ajout d'un produit au panier */ public function addProduct($id_produit,$libelle_produit,$qte=1,$prix_unitaire_produit=0){ if($qte > 0 ){ $_SESSION['panier'][$id_produit] = array('id_produit'=>$id_produit ,'produit'=>$libelle_produit ,'qte'=>$qte ,'prix_unitaire'=>$prix_unitaire_produit ); $this->updateTotalPriceProduct($id_produit); }else{ return "ERREUR : Vous ne pouvez pas ajouter un produit sans quantité..."; } } private function updateTotalPriceProduct($id_produit){ if(isset($_SESSION['panier'][$id_produit])){ $_SESSION['panier'][$id_produit]['prix_Total'] = $_SESSION['panier'][$id_produit]['qte'] * $_SESSION['panier'][$id_produit]['prix_unitaire']; } } /** * Modifie la quantité d'une produit dans le panier */ public function updateQteProduct($id_produit,$qte=0){ if(isset($_SESSION['panier'][$id_produit])){ $_SESSION['panier'][$id_produit]['qte'] = $qte; $this->updateTotalPriceProduct($id_produit); }else{ return "ERREUR : produit non présent dans le panier"; } } /** * Supprime une produit du panier */ public function removeProduct($id_produit){ if(isset($_SESSION['panier'][$id_produit])){ unset($_SESSION['panier'][$id_produit]); } } /** * Retourne le nombre de produits dans le panier */ public function getNbProductsInCart(){ $panier = !empty( $_SESSION['panier'] ) ? $_SESSION['panier'] : NULL; $nb = 0; $panier = !empty( $_SESSION['panier'] ) ? $_SESSION['panier'] : NULL; if(!empty($panier)){ foreach($panier as $P){ $nb += $P['qte']; } } return $nb; } public function getTotalPriceCart(){ $total = 0; $panier = !empty( $_SESSION['panier'] ) ? $_SESSION['panier'] : NULL; if(!empty($panier)){ foreach($panier as $P){ $total += $P['prix_Total']; } } return $total; } }
Et voici un exemple pour l'utiliser
<?php //Affichage des erreurs PHP ( A mettre au début de tes scripts PHP ) error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Démarrage des sessions si pas déjà démarrées if (session_status() == PHP_SESSION_NONE) { session_start(); } //on inclus la class qui permet de gérer le panier // require_once "chemin/vers/le/fichier/cart.class.php"; require_once "cart.class.php"; //on initialise l'objet panier : $oPanier = new cart(); //maintenant on peut ajouter des produits au panier echo "<br><hr><br> On ajoute deux produits au panier"; $oPanier->addProduct(1,'produit 1',1,10); $oPanier->addProduct(654,'produit xx',1,99.5); //on affiche le nombre de produits dans le pannier $nbProducts = $oPanier->getNbProductsInCart(); echo "<br>Nombre de produits : ". $nbProducts; //on affiche le contenu du panier $contenu_panier = $oPanier->getList(); echo "<pre> Contenu du panier :<br>"; print_r($contenu_panier ); echo "</pre>"; //on affiche le montant total du panier $total = $oPanier->getTotalPriceCart(); echo "<br>Total panier : ". $total ; // on modifie la quantité du premier produit echo "<br><hr><br> On modifie la quantité du premier produit : nouvelle quantité = 35 "; $oPanier->updateQteProduct(1,35); //on re-affiche le nombre de produits dans le pannier $nbProducts = $oPanier->getNbProductsInCart(); echo "<br>Nombre de produits : ". $nbProducts; //on re-affiche le contenu du panier $contenu_panier = $oPanier->getList(); echo "<pre> Contenu du panier :<br>"; print_r($contenu_panier ); echo "</pre>"; //on re-affiche le montant total du panier $total = $oPanier->getTotalPriceCart(); echo "<br>Total panier : ". $total ; // On retire le produit dont l'id est : 654 echo "<br><hr><br>On retire le produit dont l'id est : 654" ; $oPanier->removeProduct(654); //on re-affiche le contenu du panier $contenu_panier = $oPanier->getList(); echo "<pre> Contenu du panier :<br>"; print_r($contenu_panier ); echo "</pre>";
Programming_018
Messages postés
106
Date d'inscription
vendredi 13 janvier 2017
Statut
Membre
Dernière intervention
14 mars 2024
7
18 déc. 2018 à 10:31
18 déc. 2018 à 10:31
Merci beaucoup je vais pouvoir avancé grâce à vous. Bonne journée et fêtes.
17 déc. 2018 à 18:18
18 déc. 2018 à 07:21
Si la réponse est non... commence par te documenter sur ça.