我使用会话在我的页面中添加没有数据库的项目。在这里我尝试在我的页面中删除此文件时遇到一个问题。这是我删除链接的代码。我以前用标题变量选择数据。
<a href="step3.php?action=remove&title=<?php echo $item["title"]; ?>" class="product-title">
<span class="label label-warning pull-right">Remove</span>
</a>
我使用switch case来选择删除操作。
case "remove":
if(!empty($_SESSION["cart_item"])) {
foreach($_SESSION["cart_item"] as $k => $v) {
if($_GET["title"] == $k)
unset($_SESSION["cart_item"][$k]);
if(empty($_SESSION["cart_item"]))
unset($_SESSION["cart_item"]);
}
}
break;
它完美地选择了标题变量。但删除操作不执行。
这里我也没有从会话中选择单个数据的任何独特价值......也提供一些解决方案..
答案 0 :(得分:1)
你必须传递参数&#34;代码&#34;或者&#34; cart_item&#34;如果条件 if(!empty($ _ SESSION [&#34; cart_item&#34;]),则应该为空但是您的验证不应该是空的 验证你的状况:
case "remove":
if(!empty($_SESSION["cart_item"])) { //condition 1
foreach($_SESSION["cart_item"] as $k => $v) {
if($_GET["code"] == $k)
unset($_SESSION["cart_item"][$k]);
if(empty($_SESSION["cart_item"]))// condition 2 wont work
unset($_SESSION["cart_item"]);
}
}
break;
答案 1 :(得分:0)
if($_GET["code"] == $k)
应该
if($_GET["title"] == $k)
答案 2 :(得分:0)
您尚未通过$_GET["code"]
通过该链接。
不应该是$_GET["title"] == $k
吗?
答案 3 :(得分:0)
在您的网址中,您传递了action
和title
没有code
。
所以它应该是
case "remove":
if(!empty($_SESSION["cart_item"])) {
foreach($_SESSION["cart_item"] as $k => $v) {
if($_GET["title"] == $k)
unset($_SESSION["cart_item"][$k]);
if(empty($_SESSION["cart_item"]))
unset($_SESSION["cart_item"]);
}
}
break;