したがって、特定のセッション変数の数量を更新する必要があるカートシステムがあります。今、ID = 1のアイテムがある場合、
id = 1の別のアイテムを追加すると、数量が2に更新されます。
、それは大丈夫です。しかし、id = 2のアイテムを追加すると
また、id = 1の別のアイテムを追加すると、id = 2の数量が2に更新されます。
id = 1から3の数量を更新する必要がある場合
これが私のコードです:
$exists = false;
foreach ($_SESSION['cart'] as $key => $item) {
if ($item['product_id'] == $part_id) {
$exists = true;
}
}
if ($exists == true) {
$_SESSION["cart"][$key]['quantity']++;
}
else{
$_SESSION['cart'][] = array(
'product_id' => $part_id,
'title' => $title,
'price' => $price,
'default_img' => $default_img,
'quantity' => $quantity);
}
ループの最後で、を更新すると$_SESSION["cart"][$key]['quantity']
、$key
は常にの最後の項目を指している$_SESSION["cart"]
ため、表示されている動作になります。ループ内で更新を行う必要があります。
foreach ($_SESSION['cart'] as $key => $item) {
if ($item['product_id'] == $part_id) {
$exists = true;
$_SESSION["cart"][$key]['quantity']++;
}
}
または、一致するもの$key
が見つかったらループから抜けて、正しい値を指しているようにします。
foreach ($_SESSION['cart'] as $key => $item) {
if ($item['product_id'] == $part_id) {
$exists = true;
break;
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加