こんにちは私はショッピングカートを持っていますが、複数のアイテムを削除すると処理されないという問題がありますが、チェックボックスで1つのアイテムだけを削除すると、以下のコードでうまく機能します。コードのどこが間違っているかを調べたいと思います。
$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>
複数のアイテムをチェックして削除ボタンを送信すると、アイテムは削除されませんでしたが、1つだけチェックするとアイテムが削除されました。
どうもありがとうございました。