Panier article supp

Petit nouveau ! | 5 Messages

03 avr. 2019, 11:42

Bonjour,
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');
?>

Mammouth du PHP | 1495 Messages

04 avr. 2019, 08:10

si tu mets ton code dans une fonction et que tu n'appelle pas cette fonction, cette partie de code ne séxécutera jamais.

retire ta fonction et mets le code en direct
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Petit nouveau ! | 5 Messages

10 avr. 2019, 22:19

Bonjour,
Ducoup j'ai tout changer, j'ai enregistrer le panier dans ma bdd de façon temporaire si celui-ci reste abandonné.
Et j'avais appeler la fonction j'ai oublier de mettre tout le code :/ My bad, désolé..
Merci pour la réponse !
Enjoy