|
|
|
|
Bonjour,
Je suis en train de créer un panier virtuel pour mon site et j'aimerais savoir comment faire pour afficher tout le panier virtuel.
Il est construit dans un array en session comme suit :
/* Initialisation du panier */
$_SESSION['panier'] = array();
/* Subdivision du panier */
$_SESSION['panier']['id_produit'] = array();
$_SESSION['panier']['nom_produit'] = array();
$_SESSION['panier']['quantite'] = array();
$_SESSION['panier']['taille'] = array();
$_SESSION['panier']['couleur'] = array();
$_SESSION['panier']['prix'] = array();
Sa ne marche pas tout a fait.
Nom Prix unitaire Quantité Prix total Supprimer test5 50 € 200 € Supprimer test5 50 € 100 € Supprimer € 0 € Supprimer € 0 € Supprimer € 0 € Supprimer € 0 € Supprimer € 0 € Supprimer Par observation, je dirais que la fonction que tu m'as donné compte le nombre de ligne seulement dans l'array panier et pas ceux des autres array qui sont dans l'array panier comme par exemple l'array id qui contient 2 id (qui s'affiche ici). EDIT : après avoir chipotter un peu, j'ai réussi a adapter ta fonction. merci pour ton aide :D L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)
|
Si j'utilise un foreach, je ne pourrais pas afficher plusieurs donnée différentes sur une même ligne.
foreach ($_SESSION['panier'] as $key1=>$array)
{
foreach ($array as $key2=>$value)
{
?>
<tr>
<td><?php echo $_SESSION['panier'][$key2][$value];?></td>
<td><?php echo $_SESSION['panier'][$key2][$value].' €';?></td>
<td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit' . $numLine . '" value="'.$_SESSION['panier'][$key2][$value].'" />';?></td>
<td><?php echo $_SESSION['panier'][$key2][$value] * $_SESSION['panier'][$key2][$value].' €';?></td>
<td><a href="?page=commander&mod=<?php echo $_SESSION['panier'][$key2][$value];?>">Supprimer</a></td>
</tr>
<?php
$prix = $_SESSION['panier'][$key2][$value] * $_SESSION['panier'][$key2][$value];
$prixtot = $prix + $prixtot;
//Incrémentation
$numLine++;
}
}
Comme on peut le voir, j'ai un peu bidouiller pour l'utilisation du foreach mais sa ne marche pas, je m'embrouille avec les sessions et les foreach. et forcément si je met partout la variable $variable, je n'aurai pas du tout ce qu'il me faut. L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge) |
Oui tu n'as pas saisi le principe du foreach
<?php
$numLine=1;
foreach ($_SESSION['panier'] as $key1=>$array){
//si tu sais ce qu'il y a dans ce sous array pas besoin de 2 ieme boucle
$nom=$array[0];
$prix_unit=$array[1];
$quantite=$array[2];
$prix_total=$array[3];
$supprimer=$array[3];
?>
<tr>
<td><?php echo $nom;?></td>
<td><?php echo $prix_unit.' €';?></td>
<td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit' . $numLine . '" value="'.$quantite.'" />';?></td>
<td><?php echo $prix_unit * $quantite.' €';?></td>
<td><a href="?page=commander&mod=<?php echo $nom;?>">Supprimer</a></td>
</tr>
<?php
//Incrémentation
$numLine++;
} |
Répondre à okuni
|
En complement:
$prix_total=$prix_unit*$quantite;
$_SESSION['panier']['id_produit'] = array("nom"=>"toto","prix_unit"=>"20","quantite"=>"5","prix_total"=>"".$prix_total."","supprimer"=>"supprimer");
//ce qui donnera pour l'affichage:
<?php
$numLine=1;
foreach ($_SESSION['panier'] as $key1=>$array){
//si tu sais ce qu'il y a dans ce sous array pas besoin de 2 ieme boucle
$nom=$array['nom'];
$prix_unit=$array['prix_unit'];
$quantite=$array['quantite'];
$prix_total=$array['prix_total'];
$supprimer=$array['supprimer'];
//etc... |
Bonsoir,
<?php
/* Initialisation du panier */
$_SESSION['panier'] = array();
/* Subdivision du panier */
$_SESSION['panier']['id_produit'] = array();
$_SESSION['panier']['nom_produit'] = array();
$_SESSION['panier']['quantite'] = array();
$_SESSION['panier']['taille'] = array();
$_SESSION['panier']['couleur'] = array();
$_SESSION['panier']['prix'] = array();
// en fait il faut afficher les sous array
// taille des sous array: (on part du principe qu'ils ont tous la même longueur)
$nb_index=sizeof($_SESSION['panier']['id_produit']);
//par une boucle on les parcours en affichant leur valeur
for($i=0;$i<$nb_index;$i++){
?>
<tr>
<td><?php echo $_SESSION['panier']['nom_produit'][$i];?></td>
<td><?php echo $_SESSION['panier']['prix'][$i].' €';?></td>
<td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit'.$i. '" value="'.$_SESSION['panier']['quantite'][$i].'" />';?></td>
<td><?php echo $_SESSION['panier']['prix'][$i] * $_SESSION['panier']['quantite'][$i].' €';?></td>
<td><a href="?page=commander&mod=<?php echo $_SESSION['panier']['id_produit'][$i];?>">Supprimer</a></td>
</tr>
<?php
}
?>
@lain |