Je me présente brièvement, Clément 21 ans et actuellement en formation de développeur digital.
Voilà, j'ai un projet à faire et je dois créer un site de e-commerce en php.
Le problème que je rencontre aujourd'hui est :
J'ajoute des articles dans mon panier et stocke les informations dans $_SESSION['panier'] (Je stock les ID et quantités).
J'ai des boutons supprimer à côté de chaque article de mon panier et je souhaite pouvoir supprimer 1 seul article de mon panier pour que par exemple à la fin il ne me reste que 2 articles dans mon panier.
J'aimerais savoir si quelqu'un aurait une idée du code à utiliser ?
Je vous partage mon code.
Merci par avance !
ajout_panier.php
if(isset($_POST['id'],$_POST['quantite'] )){
session_start();
//Si le tableau panier n'est pas déjà crée, en créer un
if(!isset($_SESSION['panier'])) {
$_SESSION['panier'] = array();
$_SESSION['panier'][] = array('id'=>$_POST['id'], 'quantite'=>$_POST['quantite']);
}
else {
//Puis vérifier si id déjà présent dans le panier
$trouve = false;
for ($i=0; $i < sizeof($_SESSION['panier']) - 1; $i++ ){
if($_SESSION['panier'][$i]['id'] == $_POST['id']){
$_SESSION['panier'][$i]['quantite'] += intval($_POST['quantite']);
$trouve = true;
break;
}
}
if($trouve == false) {
$_SESSION['panier'][] = array('id'=>$_POST['id'], 'quantite'=>$_POST['quantite']);
}
}
header('Location:description.php?id='.$_POST['id'].'&ajout');
exit;
}
else die(print_r($_POST));
Et supp_panier.php
<?php
session_start();
$ref_article = $_GET['id'];
function supprim_article2($ref_article)
{
$suppression = false;
$aCleSuppr = array_keys($_SESSION['panier']['id'], $ref_article);
/* sortie la clé a été trouvée */
if (!empty ($aCleSuppr))
{
/* on traverse le panier pour supprimer ce qui doit l'être */
foreach ($_SESSION['panier'] as $k=>$v)
{
foreach($aCleSuppr as $v1)
{
unset($_SESSION['panier'][$k][$v1]); // remplace la ligne foireuse
}
/* si la réindexation est indispensable pour la suite de l'appli, faire ici: */
if($reindex == true)
{
$_SESSION['panier'][$k] = array_values($_SESSION['panier'][$k]);
}
$suppression = true;
}
}
else
{
$suppression = "absent";
}
return $suppression;
}
var_dump($_SESSION['panier']);
//header('Location:panier.php?delete');
?>