我有这个代码从购物车中删除任何想法......我需要删除两个$_SESSION
。
1) $ _ SESSION [" cart_array"]
2 $ _ SESSION [" minicart"]
如果我添加$_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"])
如果仍然不清楚,请发表评论,我会尽力再解释一下。
答案 0 :(得分:1)
尝试更改
if (isset($_POST['index_to_remove']) && $_POST['index_to_remove'] != "") {
到
if (isset($_POST['index_to_remove']) && ($_POST['index_to_remove'])) {
或!empty
代替isset
答案 1 :(得分:0)
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"])
&& !isset($_SESSION["minicart"]) || count($_SESSION["minicart"]) < 1) {
这里有一个布尔逻辑问题。这并不妨碍$ _SESSION ['minicart']或$ _SESSION ['cart_array'],如果没有设置它就会被访问。没有设置时访问是什么给你的错误。检查你的否定(!),以及你是否真的想要||那里。
我不明白在取消设置$ _SESSION值之前需要检查的是什么,我没有足够的信息和上下文。因此,我无法将代码复制粘贴到您的代码中。我所能做的就是告诉你为什么你会得到未定义的索引错误。你的if语句,如果没有设置,应该保持$ _SESSION ['cart_array']和$ _SESSION ['minicart']被访问,并不是你想做的。追踪它并检查你的逻辑。如果你不能使它工作,那么通过将其分解为多个嵌套的if语句来简化它。
如果你想要复制和可管理的代码,你需要澄清你做了多少。您在使用count()部分检查了什么,在什么情况下要取消设置变量,以及要取消设置哪些变量。