Невозможно удалить товар из корзины в сеансе - PullRequest
0 голосов
/ 21 января 2020

У меня есть корзина с использованием сеанса PHP.

для добавления элемента:

$itemArray = array($produto=>
    array('id'=>$produto, 'titulo'=>$titulo, 'quantidade'=>$quantidade, 'preco'=>$preco, 'image'=>$img)
);

$_SESSION["cart_item"] = $itemArray;

$ produto - идентификатор (уникальный).

$ itemArray выглядит следующим образом:

Array
(
    [0] => Array
        (
            [id] => 3
            [titulo] => Teste produto sem tamanho
            [quantidade] => 1
            [preco] => 1000.00
            [image] => /img/no_img.png
        )

    [1] => Array
        (
            [id] => 1
            [titulo] => Sapato masculino bonito e lustrado em couro
            [quantidade] => 2
            [preco] => 157.20
            [image] => produtos/1.jpg
        )

)

для удаления:

if($action == "remove") {
    $code = $_GET['code'];
    if(!empty($_SESSION["cart_item"])) {
        foreach($_SESSION["cart_item"] as $k => $v) {
            if($_GET["code"] == $k)
                unset($_SESSION["cart_item"][$k]);              
            if(empty($_SESSION["cart_item"]))
                unset($_SESSION["cart_item"]);
        }
    }
}

Проблема в том, что иногда он удаляет один продукт, а другие нет. Если у меня есть 2 продукта, он не удаляет. Есть идеи, что не так?

1 Ответ

1 голос
/ 21 января 2020

У вас есть многомерный массив, поэтому, если вам нужно удалить целый элемент $_SESSION, вам нужно сравнить:

if($_GET["code"] == $_SESSION["cart_item"][$k]['id'])

или

if($_GET["code"] == $v['id'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...