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 :

session panier


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Femme Profil pro
    etudiant
    Inscrit en
    Mars 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 19
    Points : 12
    Points
    12
    Par défaut session panier
    Bonsoir, après de longues hésitations, je me décide à poster sur ce forum.
    Pour mon projet de fin d’année je dois développer un e-Commerce.
    Arrivé à la conception du panier tout se complique, la seule que j’ai su faire est une session panier avec l’ajout de produits, et vider celui-ci, mais pour le reste tout se complique, Même en ayant regardé plusieurs tutoriels et vidéos sur le sujet, je n’arrive à rien.
    Sachant que les fonctionnalités d’un panier sont la création du panier, l’ajout de produit, modifier la quantité d’un produit sélectionné, supprimer un panier ou le vider complétement.
    Voilà le script d’initialisation et d’ajout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(!isset($_SESSION['panier'])||count($_SESSION['panier'])<1)	//si il n'y a pas de session panier j'en crée une ou si il ya  aucun article dans le panier
    		{
    		//initialisation du panier			
    	$_SESSION['panier']=array(1=>array('ref'=>$ref,'nom'=>$nom,'qte'=>$qte,'prix'=>$prix));//ces valeurs sont transmis en $_POST
    		$nbr=count($_SESSION['panier']);
    		header("Location:ecomerce.php?cat=".$cat."");
    		}else
    		{	
    			$_SESSION['panier'][]=array('ref'=>$ref,'nom'=>$nom,'qte'=>$qte,'prix'=>$prix);
    		}
    La suppression de panier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_GET['type'])=='del'){
    unset($_SESSION['panier']);
    echo "votre panier est vide";
    }
    J’aimerais avoir votre aide pour modifier la quantité et la suppression d’un article.
    Quand j’affiche mon panier à l’aide de foreach
    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
     
    if(isset($_SESSION['panier'])&&!empty($_SESSION['panier'])){
    	{echo" <tr><td>Réference</td><td>Produit</td><td>Quantité</td><td>Prix</td></tr>";
    	 foreach($_SESSION['panier']as $article )
    	{ //echo "<tr><th> <pre>".var_dump($article)."</pre></th></tr>";
    	 echo "<tr>";
    	  foreach($article as $cle=>$value)
    	  {//"<td> ".$cle." </td
    	echo"<td> ".$cle. " ".$value." </td>";
     
    	if($cle == 'ref' )
    {	
    $ref=$value;
    echo $ref;
    }
    	}
    	echo"<td><input type='submit' value='modifier' name='modif'/></td>;
    	echo"<td><a href='tsel.php?type=supp&ref=".$ref."'> supprimer</a></td>";
             	}
    Pour supprimer un article ou modifier la qte , je supposes qu’on a besoin de la référence de l’article. Mais je suis perdu avec l’utilisation de session qui est un tableau , avec un tableau dans un autre tableau .

    J’imagine que j’aurais les mêmes problèmes dans la conception de la requête quand il y aura plusieurs articles .

    S’il y a une âme charitable qui puisse m’aider, je vous en serais reconnaissant.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu auras moins de mal en mettant la référence en clef de tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // si l'article existe déjà dans le panier on incrémente la quantité, sinon on ajoute la référence entière : 
    if (isset($_SESSION['panier'][$ref])) {
         $_SESSION['panier'][$ref]['qte'] += $qte;
    }
    else {
         $_SESSION['panier'][$ref] = array('nom'=>$nom, 'qte'=>$qte, 'prix'=>$prix);
    }
    La création du panier à vide ne sert à rien.

    Et donc du coup pour supprimer un article :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION['panier'][$ref]);
    Attention à ta syntaxe pour la suppression du panier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET['type']) && $_GET['type'] == 'del'){
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Femme Profil pro
    etudiant
    Inscrit en
    Mars 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci pour l'aide,
    mais maintenant j'ai un autre soucis je n'arrive plus à passer en paramètre la référence du panier afin de la supprimer,
    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
    <html>
    <form action="addproduit.php" method="post">	
    <table border='2' size='100%'>
    <tr><td>Réference</td><td>Produit</td><td>Quantité</td><td>Prix</td><td colspan='2'>Action </td></tr>
    <?php
    session_start();
     
    foreach($_SESSION['panier']as $article =>$i)
    { 
    	echo"<tr><td>". $article."</td>";
    	foreach( $i as $cle=> $value )
    	{
    	echo "<td>".$value."</td>";
    	}
    	echo"<td><input type='submit' value='modifier' name='modif'/></td>";
    	echo"<td><a href='tsel.php?type=supp&ref=".$ref."'> supprimer</a></td>";
    	echo"</tr>";
    }
     
     
     
     
     
    ?><tr><td colspan="3"><a href="tsel.php?type=del"> Vider le panier</a></td><td colspan="3"><input type="submit" value="valider" name="valider"/></td></tr>
     
    </table>
    </form>
    </html>
    Si une ame charitable veux bien m'aider

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ta reference c'est ta clef de tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach($_SESSION['panier'] as $ref =>$values)
    { 
    	?><tr>
    		<td><?php echo $values['nom']; ?></td>
    		<td><?php echo $values['qte']; ?></td>
    		<td><input type='submit' value='modifier' name='modif'/></td>";
    		<td><a href="tsel.php?type=supp&ref=<?php echo $ref; ?>"> supprimer</a></td>
    	</tr><?php
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Femme Profil pro
    etudiant
    Inscrit en
    Mars 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Bonsoir ,
    Me revoilà encore une fois, j'ai encore des soucis avec ma session panier.
    Pour le moment j'arrive à ajouter des produits à vider le panier.
    Pour ma suppression d'article , c'est un peu du n'importe quoi, quand je clique sur supprimer ,c'est le dernier produit qui est supprimé.
    quand à ma modification , je pensais qu'en envoyant la catégorie en hidden cela me permettrai de l'ajouter me retrouver sur la bonne categorie du produit

    Mon code de ma page de selection de produit
    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
     
    <?php
    if(isset($_GET['cat'])){
    //$page_cat=$_POST['cat'];
    //echo $page_cat;
    //include("connex.inc.php");
    //$connexion=connex('param');
     
    $reqart="SELECT * FROM article WHERE categorie = '".$page_cat."'"; 
    $article=$connexion->prepare($reqart);
    $article->execute();
    //$cpt=$categorie->rowCount();
     
    echo /*<form action='tastadd.php' method='POST' width='100%'>*/" <table>";
     
    	while($ligne=$article->fetch(PDO::FETCH_ASSOC))
    	{echo "<form action='testadd.php' method='POST' width='100%'>";
     
    	$page=$ligne['categorie'];
    	$nompa=$ligne['nom_art'];
    	$nom=$ligne['nom_art'];
    	echo"<tr><td><img src='images/".$ligne['image'].".jpg' class='ascol'/></td>";
    	echo"<td> Le produit ".$ligne['nom_art'];
    	echo "<input type='hidden' value=". $ligne['nom_art']." name='nom' \>";
    	echo"<input type='hidden' value=\"".$ligne['ref_article']."\" name='ref' />";
    	echo"<input type='hidden' value=\"".$ligne['prix']."\" name='prix' />";
     
        echo"<input type='hidden' value=\"".$ligne['categorie']."\" name='cat' />";
    	echo"<input type='number' name='qte' value='1' min='-5' max='5' />";
    	/*<a href='page.php?nom=".$nom."&ref=".$ligne['ref_article']."&image=".$ligne['image']."&prix=".$ligne['prix']."&cat=".$page."'/>*/
      echo"<td><input type=\"submit\" value='ajouter' name='action' \></td></tr></form>";
    }
    echo "</table><br><br>";
    }
    ?>
    ici ma page d'ajout de produit de suppression et de modification
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?Php
    session_start();
    ?>
    <!doctype html public "-//w3c//dtd html 3.2//en">
    <html>
    <head>
    <title>Action sur le panier</title>
    </head>
    <body>
     
    <?Php
    // Declaring session array
    //array_push($_SESSION['panier'],'apple','mango','banana'); */// Items added to cart
     
    switch($_POST['action']){
    case "ajouter":
    	$nom=$_POST["nom"];
    	$ref=$_POST["ref"];
    	$qte=$_POST['qte'];
    	$prix=$_POST["prix"];
    	$cat=$_POST["cat"];
    	//echo $nom."	".$ref."la qte ".$qte." ".$prix." ".$cat;
    if (isset($_SESSION['panier'][$ref])) 
    	{
         $_SESSION['panier'][$ref]['qte'] += $qte;
     
    	}else {
     
         $_SESSION['panier'][$ref] = array('nom'=>$nom, 'qte'=>$qte,'prix'=>$prix,'cat'=> $cat);
    	}
    	header("Location:testadd.php");
    break;
    case "modifier":
    	if(!empty($_POST['cat'])){
    	$cat=$_POST['cat']; echo "je suis ici";
    		header("Location:produit.php?cat=".$cat."");
    		}
    break;
    break;
    case "supprimer":
    	if(!empty($_POST['ref'])){
    	$ref=$_POST['ref'];
    	unset($_SESSION['panier'][$ref]);
    		header("Location:panier.php");
    		}
    break;
    case "vider le panier":
    unset($_SESSION['panier']);
    echo "votre panier est vide";
     
    default:
    header("Location:panier.php");
     
    }
     
    ?>
     
    </body>
    </html>
    ici mon code de ma page 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
    session_start();
    if(empty($_SESSION['panier']))
    {
    echo"votre panier est vide";
    }
    else{
    	//
    ?>
    <html>
    <form action="testadd.php" method="post">	
    <table border='2' size='100%'>
    <tr><td>Produit</td><td>Quantité</td><td>Prix</td><td> ref</td><td colspan='2'>Action </td></tr>
    <?php
    $total=0;
    $tot=0;
    $tqte=0;
    $prix=0;
     
    foreach($_SESSION['panier'] as $ref=>$cle)
    { $prix=$cle['prix'];
      $qte=$cle['qte'];
      $cat=$cle['cat'];
      $tqte+=$qte;
      $total=($prix*$qte);
      $tot+=$total;
    echo "<input type='hidden' value=".$ref." name='ref'/>";echo "<input type='hidden' value=".$cat." name='cat'/>";
    	echo "<td>".$cle['nom']."</td>";
    	echo "<td>".$qte."</td>";
    	echo "<td>".$prix."</td>";
    	echo "<td>".$ref."</td>";
     
    	echo"<td><input type='submit' value='modifier' name='action'/></td>";
    	echo "<td><input type='submit' value='supprimer' name='action'/></td>";
    echo"</tr>";	
    }	
    echo "<tr><td colspan='2'>Total</td><td colspan='2'>".$tot." Euro(s)</td></tr>";
     
     echo"<tr><td colspan='3'><input type='submit' value='vider le panier' name='action'/ ></td><td colspan='3'><input type='submit'value='valider' name='ok'/></td></tr>
    </table>
    </form> ";
     
    }
     
    ?>
    <br><br>
    <a href="index.php">Retour</a>
    </html>
    Si une âme charitable veut bien m'aider, je la remercie d'avance

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans ta page panier, tu n'as qu'un seul formulaire avec tous les articles dedans, donc forcement tes boutons modifier/supprimer ne sont pas liés à un article.
    Il te faut un formulaire par article.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/04/2008, 16h41
  2. Ajouter une clé pour une session non ouverte
    Par prgasp77 dans le forum Windows
    Réponses: 4
    Dernier message: 29/10/2005, 00h26
  3. need help pour : boucle & expression régulière
    Par Fabouney dans le forum Langage
    Réponses: 5
    Dernier message: 05/08/2005, 02h22
  4. mon projet a des erreurs please help :)
    Par babemagus dans le forum MFC
    Réponses: 5
    Dernier message: 15/06/2005, 13h40
  5. [TP]Help pour insertion d'un image sur tp7 svp !
    Par ilym dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 21/01/2004, 21h00

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