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 :

Suppression article panier virtuel


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Points : 15
    Points
    15
    Par défaut Suppression article panier virtuel
    Bonjour j'au un problême de suppression avec mon vadie virtuel
    voilà comment il marche
    une page catalogue ou mes articles sont affichés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php session_start(); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
      <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
      <title>Catalogue de produits</title>
    </head>
    <body>
    <?php
    mysql_connect("localhost","root","");
      mysql_select_db("ecommerce");
      $reponse=mysql_query("SELECT * FROM produits");
     while ($donnees = mysql_fetch_array($reponse) ) // On fait une boucle pour lister tout ce que contient la table :
      {?><div id="listeproduits"><?php
      echo $donnees['nom'];
      ?><a href="ficheproduit.php?id=<?php echo $donnees['id'];?>"><img src="upload/<?php echo $donnees['photomin'];?>" class="img" alt="Détails produit" /></a></div><?php  // on affiche tout
      }
      ?>
      </body>
      </html>
    cette page renvoi sur la fiche article quand on clique sur l'article:
    quant on cliques sur acheter,deux varaiables deux $_GET sont transmis=>le sens (ajout ou suppression de l'article du panier) et l'id de l'article
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php session_start(); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
      <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
      <title>Fiche produit</title>
    </head>
    <body>
    <?php
    extract($_GET);
    mysql_connect("localhost","root","");
      mysql_select_db("ecommerce");                        
      $reponse=mysql_query("SELECT * FROM produits WHERE id='".addslashes($id)."'");    //connexion puis recherche des infos articles
      $donnees = mysql_fetch_array($reponse);
      echo $donnees['nom']; ?> coute <?php echo $donnees['prix'];?> euros et yen a <?php echo $donnees['quant'];
      ?><br><a href="ajoutpanier.php?id=<?php echo $donnees['id'];?>&amp;sens=ajout">Acheter <?php echo $donnees['nom'];?></a><br><a href="catalogue.php"> Revenir au catalogue</a><br>      
      <div style="width: 350px; height: 350px; border: 1px solid black;"><img src="upload/<?php echo $donnees['photo'];?>"  /></div><?php  //on liste le tout dans une boucle à laquelle on a incorporé un div
     
      mysql_close();
      ?>
     
      </body>
      </html>
    ensuite mes $_GET sont utilisés sur la page ou l'article est ajouté au panier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php session_start(); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
      <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
      <title>Ajout de l'article choisi au panier</title>
    </head>
    <body>
    <?php
    extract($_GET);
    mysql_connect("localhost","root","");             // connexion
      mysql_select_db("ecommerce");
      $reponse=mysql_query("SELECT * FROM produits WHERE id='".addslashes($id)."'");   // recup des infos sur l'article
      $donnees = mysql_fetch_array($reponse);
      $nom=$donnees['nom'];
     $prix=$donnees['prix'];                
     if (isset($nom))                //donc si il existe un article
    {
    if($sens=="ajout")             // et que on veut ajouter
    {
    $_SESSION['achats'][] = array ("nom" => $nom,"prix" => $prix);
    echo "vous avez ajouté l'article à votre panier";               // on mets tout çà en session tableau
    }
    }
     
     
     
    ?><br><a href="lepanier.php">aller au panier</a><?php
     
      mysql_close();
      ?>
    </body>
    donc là l'article est rajouté,le script est commenté ...
    et ensuite on a ma page panier ou on pourra effectuer des opération sur le panier
    la voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php 
    session_start();
    print_r($_SESSION['achats']);?><br><?php
    mysql_connect("localhost","root","");
      mysql_select_db("ecommerce");
     
    for($i=0;$i<count($_SESSION['achats']);$i++) //on liste le panier à l'aide d'une boucle
    {
    $reponse=mysql_query("SELECT * FROM produits WHERE nom='".addslashes($_SESSION['achats'][$i]['nom'])."'");
      $donnees = mysql_fetch_array($reponse);// ON récupère les infos articles pour mettre bien en forme dans un div
    ?><div style="width: 400px;height: 110px; border: 1px solid black;"><img src="upload/<?php echo $donnees['photomin'];?>"  alt="Détails produit" /><?php echo $_SESSION['achats'][$i]['nom']."&nbsp;&nbsp;&nbsp;Prix =>".$_SESSION['achats'][$i]['prix'];?>€ <a href="lepanier.php?nomsup=<?php echo $_SESSION['achats'][$i]['nom'];?>">Supprimer</a>
    </div><br><?php
    $prixtotal+=$_SESSION['achats'][$i]['prix'];  // calcul du prix total
    }
    if(isset($_GET['nomsup']))  //si jamais on est issu d'un rafraissisement en vue d'une suppression d'article ben on le supprime
    {
    extract($_GET);?><br><?php
    for($i=0;$i<count($_SESSION['achats']);$i++) //on liste notre panier
    {
    if($_SESSION['achats'][$i]['nom']!==$nomsup)// et tout ce qui n'est pas l'article qu'on veut supprimer
    {
    $tmp[] = array ("nom" =>$_SESSION['achats'][$i]['nom'],"prix" =>$_SESSION['achats'][$i]['prix']); //on le mets dans un panier temporaire
    }
    }
     
     
     
    $_SESSION['achats']=$tmp; // notre ancien panier temporaire devient notre véritable panier
     
     
    }
     
    echo "<br>Votre panier contient ".count($_SESSION['achats'])." articles pour un prix total de ".$prixtotal."€<br>";
     
     
     
    ?>
    <a href="catalogue.php">aller au catalogue</a>
    <br>
    <a href="paiement.php">valider ma commande</a>
    le problême ici c'est que quand je supprimme un article,ma liste n'est pas mise à jour,il faut que je cliques deux fois sur supprimmer pour que l'article soit totalement supprimé de mon panier,c'est vraiment bizarre
    donc si queulqu'un peut m'éclairer à ce sujet,son aide est la bienvenue...

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    C'est logique, en gros, ton fonctionnement actuel est ainsi :

    1 : tu affiches le caddie avec les produits et le bouton supprimer.
    2 : Tu cliques sur supprimer
    3 : la page caddie est rechargée. Dans cette page, d'abord tu affiches le contenu du panier et ensuite tu fais la suppréssion.

    Donc au moment de l'affichage, tu n'as pas encore fait la suppréssion ! Il te suffit de remonter le bloc de code de suppréssion. Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php 
    session_start();
    print_r($_SESSION['achats']);?><br><?php
    mysql_connect("localhost","root","");
      mysql_select_db("ecommerce");
     
    if(isset($_GET['nomsup']))  //si jamais on est issu d'un rafraissisement en vue d'une suppression d'article ben on le supprime
    {
    extract($_GET);?><br><?php
    for($i=0;$i<count($_SESSION['achats']);$i++) //on liste notre panier
    {
    if($_SESSION['achats'][$i]['nom']!==$nomsup)// et tout ce qui n'est pas l'article qu'on veut supprimer
    {
    $tmp[] = array ("nom" =>$_SESSION['achats'][$i]['nom'],"prix" =>$_SESSION['achats'][$i]['prix']); //on le mets dans un panier temporaire
    }
    }
     
    for($i=0;$i<count($_SESSION['achats']);$i++) //on liste le panier à l'aide d'une boucle
    {
    $reponse=mysql_query("SELECT * FROM produits WHERE nom='".addslashes($_SESSION['achats'][$i]['nom'])."'");
      $donnees = mysql_fetch_array($reponse);// ON récupère les infos articles pour mettre bien en forme dans un div
    ?><div style="width: 400px;height: 110px; border: 1px solid black;"><img src="upload/<?php echo $donnees['photomin'];?>"  alt="Détails produit" /><?php echo $_SESSION['achats'][$i]['nom']."&nbsp;&nbsp;&nbsp;Prix =>".$_SESSION['achats'][$i]['prix'];?>€ <a href="lepanier.php?nomsup=<?php echo $_SESSION['achats'][$i]['nom'];?>">Supprimer</a>
    </div><br><?php
    $prixtotal+=$_SESSION['achats'][$i]['prix'];  // calcul du prix total
    }
     
     
     
     
    $_SESSION['achats']=$tmp; // notre ancien panier temporaire devient notre véritable panier
     
     
    }
     
    echo "<br>Votre panier contient ".count($_SESSION['achats'])." articles pour un prix total de ".$prixtotal."€<br>";
     
     
     
    ?>
    <a href="catalogue.php">aller au catalogue</a>
    <br>
    <a href="paiement.php">valider ma commande</a>

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    merci beaucoup de ta réponse
    c'était bête en fait

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

Discussions similaires

  1. [PHP 5.2] Panier virtuel : suppression aléatoire
    Par Lenezir dans le forum Langage
    Réponses: 2
    Dernier message: 31/12/2008, 15h40
  2. Réponses: 12
    Dernier message: 17/06/2008, 10h49
  3. [Sécurité] suppression dans panier
    Par oceane751 dans le forum Langage
    Réponses: 8
    Dernier message: 13/12/2005, 14h53
  4. Script panier virtuel
    Par chodaboy34 dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 17h49
  5. panier virtuel
    Par jive dans le forum ASP
    Réponses: 5
    Dernier message: 23/08/2005, 18h42

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