0

我有这段代码可以从购物车中删除任何想法...我需要删除两个$_SESSION. 1) $_SESSION["cart_array"]

2 $_SESSION["迷你车"]

没有我添加$_SESSION["minicart"] 它确实会删除,$_SESSION["cart_array"]但是当我添加它时,我得到了我得到的minicart部分undefined index: minicart。所以我

试过了

if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) && !isset($_SESSION["minicart"]) || count($_SESSION["minicart"]) < 1) {

上面的代码检查 // 如果购物车会话变量未设置或购物车数组为空*

原始 if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {

所以

<?php

 //   if user wants to remove an item from cart
 if (isset($_POST['index_to_remove']) && $_POST['index_to_remove'] != "") {
    // Access the array and run code to remove that array index
    $key_to_remove = $_POST['index_to_remove'];
    if (count($_SESSION["cart_array"]["minicart"]) <= 1) {
        unset($_SESSION["cart_array"]["minicart"]);
    } else {
        unset($_SESSION["cart_array"]["minicart"] ["$key_to_remove"]);
        sort($_SESSION["cart_array"]["minicart"]);
    }
}
?>

我的问题 看看我在声明中做错了什么if以及我在statement删除中做错了什么($_SESSION["cart_array"]) AND ($_SESSION["minicart"])

如果这仍然不清楚,请发表评论,我会尽力再次解释。

4

2 回答 2

1

尝试改变

if (isset($_POST['index_to_remove']) && $_POST['index_to_remove'] != "") {

if (isset($_POST['index_to_remove']) && ($_POST['index_to_remove'])) {

!empty代替isset

于 2013-07-15T18:53:45.547 回答
0
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) 
    && !isset($_SESSION["minicart"]) || count($_SESSION["minicart"]) < 1) {

你这里有一个布尔逻辑问题。这不会阻止 $_SESSION['minicart'] 或 $_SESSION['cart_array'] 在未设置的情况下被访问。未设置时的访问是给您错误的原因。检查你的否定(!),以及你是否真的想要|| 那里。

在取消设置这些 $_SESSION 值之前,我不明白您需要检查什么,我没有足够的信息和上下文。因此,我不能给你代码复制粘贴到你的。我所能做的就是告诉你为什么你会得到未定义的索引错误。如果未设置 $_SESSION['cart_array'] 和 $_SESSION['minicart'] ,您的 if 语句应该不会被访问,但它并没有达到您的预期。追踪它并检查你的逻辑。如果您无法使其工作,则通过将其分解为多个嵌套的 if 语句来简化它。

如果你想要复制和粘贴代码,你需要澄清你在做什么。您在使用 count() 部分检查什么,在什么情况下要取消设置变量,以及要取消设置哪些变量。

于 2013-07-15T19:12:40.110 回答