如何在php会话中删除多个项目?
嗨,我有一个购物车,但我的问题是,当我删除多个项目时,它不会处理,但如果我只删除复选框中的一个项目,它工作得很好下面是我的代码,我想知道我的代码是否有错:如何在php会话中删除多个项目?,php,session,Php,Session,嗨,我有一个购物车,但我的问题是,当我删除多个项目时,它不会处理,但如果我只删除复选框中的一个项目,它工作得很好下面是我的代码,我想知道我的代码是否有错: $cart = $_SESSION['items']; if(isset($_POST['del'])) { if ($cart) { $newcart = array(); foreach ($cart as $item) { foreach ($_POST['itemid'] as $del) {
$cart = $_SESSION['items'];
if(isset($_POST['del'])) {
if ($cart) {
$newcart = array();
foreach ($cart as $item) {
foreach ($_POST['itemid'] as $del) {
$delete = $del;
}
if ($del != $item) {
if ($newcart != '') {
$newcart[] = $item;
} else {
$newcart[] = $item;
}
}
}
$cart = $newcart;
}
}
$_SESSION['items'] = $cart;
这是我的表格:
<form action="cart.php" method="post">
<table>
<tr>
<td><input type="checkbox" name="itemid[]" value="1"></td><td>Item 1</td><td>5</td>
</tr>
<tr>
<td><input type="checkbox" name="itemid[]" value="2"></td><td>Item 2</td><td>5</td>
</tr>
<tr>
<td><input type="checkbox" name="itemid[]" value="3"></td><td>Item 3</td><td>5</td>
</tr>
<tr>
<td><input type="checkbox" name="itemid[]" value="4"></td><td>Item 4</td><td>5</td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="del" value="Delete"></td>
</tr>
</table>
</form>
项目15
项目25
项目35
项目45
如果我选中多个项目并提交“删除”按钮,则该项目不会被删除,但如果我只选中一个项目,则该项目将被删除
非常感谢您的帮助。您的代码中有name=“items”,但您正在查找$\u POST['itemid']-它们应该彼此相同吗?看起来您对会话值感到困惑
发布您的编辑:
foreach ($_POST['itemid'] as $del) {
$delete = $del;
}
将只将最后的项目保留为$delete。你可以试试
foreach ($cart as $item) {
if (!in_array($item, $_POST['itemid'])) {
if ($newcart != '') {
$newcart[] = $item;
} else {
$newcart[] = $item;
}
}
}
对不起,我错过了。现在我没事了,我已经更新了我的问题。非常感谢。