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 :

[Tableaux] Panier d'achat et tableau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut [Tableaux] Panier d'achat et tableau
    Bonjour,

    J'ai un panier d'achat qui se rempli en cochant les produits que l'on veut ajouter au panier.

    Tout va bien, mes produits sont ajoutés au panier sauf que lorsque je visualise le contenu de mon panier avec var_dump() j'ai l'impression qu'il y a un élément ou un index de vide dans mon tableau.

    Voici le code de mon catalogue:

    echo "<form action=\"caddy.php\" method=\"post\">\n";

    mysql_connect($host, $login, $password);

    mysql_select_db($db);

    $query2 = "SELECT cp.id, cp.prix, cp.id_produit, p.nom ".

    "FROM clients_produits AS cp, produits AS p ".

    "WHERE p.id = cp.id_produit ".

    "AND cp.id_client='". $_SESSION['id_client'] ."'"; $result2=mysql_query($query2);

    while($row2=mysql_fetch_array($result2))

    {



    echo "<tr>\n";

    echo "<td>\n";

    echo "".$row2["nom"]."<input type=\"hidden\" name=\"id_produit_".$row2["id_produit"]."\" value=\"".$row2["id_produit"]."\" size=\"25\"></td>\n";

    echo "<td>".$row2["prix"]."$<input type=\"hidden\" name=\"prix_".$row2["id_produit"]."\" value=\"".$row2["prix"]."\"></td>\n";

    echo "<td><input name=\"choix[]\" type=\"checkbox\" value=\"".$row2["id_produit"]."\"></td>\n";

    echo "</tr>\n";

    }

    echo "<tr>\n";

    echo "<td align=\"center\" colspan=\"\"><input type=\"submit\" name=\"ajout\" value=\"Envoyer\">\n";

    echo "</form>\n";
    Voici le code de mon panier:

    if(!isset($_SESSION["panier"]))
    {
    $_SESSION["panier"] = array();
    $_SESSION["panier"]["id_produit"] = array();
    $_SESSION["panier"]["prix"] = array();
    }
    foreach($_POST["choix"] as $i)
    {
    echo "".$i."<br>";
    $panier=$_SESSION["panier"];
    $panier[]=array("id_produit"=>$_POST["id_produit_".$i.""],"prix"=>$_POST["prix_".$i.""]);
    $_SESSION["panier"]=$panier;

    }
    Voici le contenu de var_dump() après avoir sélectionné 2 produits:

    array(3) {
    ["id_produit"]=>
    array(0) {
    }
    ["prix"]=>
    array(0) {
    }
    [0]=>
    array(2) {
    ["id_produit"]=>
    string(1) "4"
    ["prix"]=>
    string(3) "555"
    }
    }
    Pouvez-vous m'indiquer se qui ne va pas avec mon code?

    Peut-être est-ce correct mais que je ne comprend pas bien le résultat de var_dump()

    Merci!

  2. #2
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 66
    Points
    66
    Par défaut
    Le problème que je vois à priorit est que tu remplace tous tes items du panier à chaque fois que tu boucle sur tes items de ton POST.

    Voici la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //Enlever l'initialisation de la session, qui je crois est inutile...
     
    foreach($_POST["choix"] as $i)
    {
    <div style="margin-left:40px">echo "".$i."<br>";
    $panier = is_array($_SESSION["panier"]) ? $_SESSION["panier"] : array();
    array_push($panier,array("id_produit"=>$_POST["id_produit_".$i.""],"prix"=>$_POST["prix_".$i.""]));
    $_SESSION["panier"]=$panier;</div>}
    Tu récupères les données du panier de la façon suivante (exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $panier = $_SESSION["panier"];
    foreach ($panier as $p) {
    <div style="margin-left:40px">
    echo($p["id_produit"] . " --> " . $p["prix"] . "$");</div>}

Discussions similaires

  1. [Tableaux] Affichage valeur d'un tableau trié
    Par kcizth dans le forum Langage
    Réponses: 1
    Dernier message: 05/01/2006, 16h47
  2. Réponses: 1
    Dernier message: 24/12/2005, 15h18
  3. [Tableaux] function qui retourne un tableau
    Par toure32 dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2005, 22h16
  4. Réponses: 14
    Dernier message: 13/10/2005, 13h55
  5. créer un Panier d'achat, quelle techno ?
    Par virgul dans le forum E-Commerce
    Réponses: 7
    Dernier message: 14/06/2005, 16h29

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