Pour faire un panier
bichou91
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai fait un code pour faire un panier, mais il y a défaillance, je sais qua il n ais pas entièrement fini,mais ce que j essaye de faire est quand je choisie un produit tu me le rentre dans mon panier et si je retourne sur la page produit et que je choisies un deuxième produits et bien tu me le met en dessous de l autre ...
j'ai fait un code pour faire un panier, mais il y a défaillance, je sais qua il n ais pas entièrement fini,mais ce que j essaye de faire est quand je choisie un produit tu me le rentre dans mon panier et si je retourne sur la page produit et que je choisies un deuxième produits et bien tu me le met en dessous de l autre ...
<?php session_start(); $catalogue = array( 'livre_1' => array( 'img' => '../img/livre_1.jpg', 'title' => 'AU BOULOT ! livre 1', 'desc' => 'Ce cahier d\'activité s\'adresse à des apprenants de niveau post-alphabétisation. FLE(A1/A2) et illétrisme.Il est particulièrement adapté aux adultes et aux jeunes en poste ou en l\'insertion professionnelle 3d graphème(ou-o/au/eau-oi-c/k/qu-ch-s/ss/c/t/ç-g/gu-bl/br/pl/pr/tr...) sont étudiés dans ce premier livre.', 'niveau' => 'Niveau : A1.1 à A2', 'date' => 'Date de parution : 05/09/2016', 'auteur' => 'Valerie Vermurie', 'prix' => 'Prix : 18.90 euro' ), 'livre_2' => array( 'img' => '../img/livre_2.jpg', 'title' => 'AU BOULOT ! livre 2', 'desc' => 'Ce second cahier d\'activité est dans la continuité du précédent et propose d\'aborder d\'autres sons. Là encore, l\'apprenant est un profesionnel et un acteur social de la vie française.Le lexique regroupe par exemple différents domaines professiones comme: les transports, l\'hotellerie-restauration, la mode et le textile, le batiment, l\'entretien et les services, les espaces verts...', 'niveau' => 'Niveau : A1.1 à A2', 'date' => 'Date de parution : 05/09/2016', 'auteur' => 'Maria Marcastel', 'prix' => 'Prix : 18.90 euro' ), 'livre_3' => array( 'img' => '../img/mtp1.jpg', 'title' => 'METIER DU TRANSPORT & PERMIS VOITURE-POIDS LOURD-LIVRE 1', 'desc' => 'Ce livre s\'adresse également aux personnes qui souhaitent développer et renforcer leurs connaissances sur le code de la route dans le but de passer le permis voiture ou le permis poids lourd par la suite.', 'niveau' => 'Niveau : A1.1 à A2', 'date' => 'Date de parution : 15/03/2017', 'auteur' => 'Nancy Lemaire', 'prix' => 'Prix : 18.90 euro' ), 'livre_4' => array( 'img' => '../img/mtp2.jpg', 'title' => 'METIER DU TRANSPORT & PERMIS VOITURE-POIDS LOURD-LIVRE 2', 'desc' => 'La communication professionnelle, la prévention routière et le code de la route constituent le fil conducteur du livre. L\'apprenant y est un professionnel et un acteur social.', 'niveau' => 'Niveau : A1.1 à A2', 'date' => 'Date de parution : 15/03/2017', 'auteur' => 'Virginie Laborie', 'prix' => 'Prix : 18.90 euro' ) ); // Création du panier si n'existe pas dans la session de l'utilisateur session_start(); $qte_article = array(1,2,3,4,5,6,7,8,9,10); foreach($catalogue as $cle => $catalogues){ if (isset($_SESSION['panier'])) $_SESSION['panier'] = array(); // Voici les données externes utilisées par le panier $id_article = isset($_GET['id_article']) ? $_GET['id_article'] : false; $img_article =isset($_GET['img']) ? $_GET['img'] : false; $nom_article = isset($_GET['title']) ? $_GET['title'] : false; $desc_article = isset($_GET['desc']) ? $_GET['desc'] : false; $prix_article =isset($_GET['prix']) ? $_GET['prix'] : '?'; $qte_article = isset($_GET['qte']) ? $_GET['qte'] : header("Location: http://localhost/project_val_bis/page_principal/livres.php"); // Voici les traitements du panier if ($id_article == null) echo 'Veuillez sélectionner un article pour le mettre dans le panier!'; // Message si pas d'acticle sélectionné else if (isset($_SESSION['panier'])){// Ajouter un nouvel article $_SESSION['panier'][$id_article]['img'] = $img_article; $_SESSION['panier'][$id_article]['title'] = $nom_article; $_SESSION['panier'][$id_article]['desc'] = $desc_article; $_SESSION['panier'][$id_article]['prix'] = $prix_article; $_SESSION['panier'][$id_article]['qte'] = $qte_article; } else if (isset($_GET['modifier'])) $_SESSION['panier'][$id_article]['qte'] = $qte_article; // Modifier la quantité achetée else if (isset($_GET['supprimer'])) unset($_SESSION['panier'][$id_article]); // Supprimer un article du panier // Voici l'affichage du panier echo '<h2>Contenu de votre panier</h2><ul>'; if (isset($_SESSION['panier']) && count($_SESSION['panier'])>0){ $total_panier = 0; foreach($_SESSION['panier'] as $id_article=>$article_acheté){ // On affiche chaque ligne du panier : nom, prix et quantité modifiable + 2 boutons : modifier la qté et supprimer l'article if (empty($article_acheté['img']) && empty($article_acheté['title']) && empty($article_acheté['desc'])&& empty($article_acheté['prix'])&& empty($article_acheté['qte'])){ echo '<li style="display:inline-block;list-style:none;"><form><img style="float:left;padding-right:.5em;" src="'.$article_acheté['img'].'" width="100" height="140" alt="" />', $article_acheté['title'], $article_acheté['desc'], ' (', number_format($article_acheté['prix'], 2, ',', ' '), ' €) ', '<input type="hidden" name="id_article" value="', $id_article , '" /> <br /> <br />Qté: <input type="text" name="qte_article" value="', $article_acheté['qte'] , '" /> <input type="submit" name="modifier" value="Nouvelle Qté" /> <input type="submit" name="supprimer" value="Supprimer" /> </form> </li>'; // Calcule le prix total du panier $total_panier += $article_acheté['prix'] * $article_acheté['qte']; } } echo '<hr><h3>Total: ', number_format($total_panier, 2, ',', ' '), ' €'; // Affiche le total du panier } else { echo 'Votre panier est vide'; } // Message si le panier est vide echo "</ul>"; } ?>
1 réponse
Bonjour,
Certains éléments de ton script me semblent inutiles ou incohérents...
Que vient faire ici ta variable Catalogue ? Pourquoi boucles tu dessus ?
Et ta variable $qte_articles que tu récupères en GET puis que tu initialises avec un array ... ??
Voici ce que je te propose à la place :
Cordialement,
Jordane
Certains éléments de ton script me semblent inutiles ou incohérents...
Que vient faire ici ta variable Catalogue ? Pourquoi boucles tu dessus ?
Et ta variable $qte_articles que tu récupères en GET puis que tu initialises avec un array ... ??
Voici ce que je te propose à la place :
<?php //Affichage des erreurs PHP error_reporting(E_ALL); //démarrage Session session_start(); //----------------------------------------------------------------------------------------// // récupération des variables //----------------------------------------------------------------------------------------// $arr_PANIER = !empty($_SESSION['panier']) ? $_SESSION['panier'] : NULL; // Voici les données externes utilisées par le panier $id_article = isset($_GET['id_article']) ? $_GET['id_article'] : false; $img_article =isset($_GET['img']) ? $_GET['img'] : false; $nom_article = isset($_GET['title']) ? $_GET['title'] : false; $desc_article = isset($_GET['desc']) ? $_GET['desc'] : false; $prix_article =isset($_GET['prix']) ? $_GET['prix'] : 0; $qte_article = isset($_GET['qte']) ? $_GET['qte'] : NULL; //actions $modifier =isset($_GET['modifier']) ? $_GET['modifier'] : NULL; $supprimer =isset($_GET['supprimer']) ? $_GET['supprimer'] : NULL; //----------------------------------------------------------------------------------------// // Gestion du panier //----------------------------------------------------------------------------------------// if(!$qte_article){ //Si pas de quantité header("Location: livres.php"); exit(); } if (!$id_article){ // Message si pas d'acticle sélectionné echo 'Veuillez sélectionner un article pour le mettre dans le panier!'; }else{ if($modifier){ // Modifier la quantité achetée $_SESSION['panier'][$id_article]['qte'] = $qte_article; }elseif($supprimer){ // Supprimer un article du panier unset($_SESSION['panier'][$id_article]); }else{ //Ajout d'un article au pannier $_SESSION['panier'][$id_article]['img'] = $img_article; $_SESSION['panier'][$id_article]['title'] = $nom_article; $_SESSION['panier'][$id_article]['desc'] = $desc_article; $_SESSION['panier'][$id_article]['prix'] = $prix_article; $_SESSION['panier'][$id_article]['qte'] = $qte_article; } } //----------------------------------------------------------------------------------------// // Voici l'affichage du panier //----------------------------------------------------------------------------------------// echo '<h2>Contenu de votre panier</h2><ul>'; if (!empty($arr_PANIER)){ $total_panier = 0; foreach($arr_PANIER as $id_article=>$article_acheté){ // On affiche chaque ligne du panier : nom, prix et quantité modifiable + 2 boutons : modifier la qté et supprimer l'article if ( !empty($article_acheté['img']) && !empty($article_acheté['title']) && !empty($article_acheté['desc']) && !empty($article_acheté['prix']) && !empty($article_acheté['qte'])){ echo '<li style="display:inline-block;list-style:none;"> <form method="get" action=""> <input type="hidden" name="img" value="'.$article_acheté['img'].'"> <img style="float:left;padding-right:.5em;" src="'.$article_acheté['img'].'" width="100" height="140" alt="" />' , $article_acheté['title'] , $article_acheté['desc'] , ' (', number_format($article_acheté['prix'], 2, ',', ' '), ' €) ' , '<input type="hidden" name="id_article" value="', $id_article , '" /> <br /> <br />Qté: <input type="text" name="qte_article" value="', $article_acheté['qte'] , '" /> <input type="submit" name="modifier" value="Nouvelle Qté" /> <input type="submit" name="supprimer" value="Supprimer" /> </form> </li>'; // Calcule le prix total du panier $total_panier += $article_acheté['prix'] * $article_acheté['qte']; } } echo '<hr><h3>Total: ', number_format($total_panier, 2, ',', ' '), ' €'; // Affiche le total du panier } else { // Message si le panier est vide echo 'Votre panier est vide'; } echo "</ul>";
Cordialement,
Jordane