【发布时间】:2017-09-01 18:32:46
【问题描述】:
我想使用 foreach 循环遍历购物车中的所有产品,如果它存在并且用户再次将其添加到购物车中,它应该将该项目的总数增加 1,但我不确定如何实现这一点。我想要发生的是,如果用户在一个项目上单击“添加到购物车”,它将被添加到数量为 1 的购物车中。如果他们再次为同一项目单击“添加到购物车”,它应该更改为数量2 为该项目。
$product_id = $_POST['id'];
if (!isset($_SESSION['cart_array'])) {
$_SESSION['cart_array'] = array(
"item_id" => $product_id,
"quantity" => 1
);
}
else {
if (in_array($product_id, $_SESSION['cart_array'])) {
// add 1 to items already in cart
$_SESSION['cart_array'] = $product_id . " " . "Item exists, add 1";
}
else {
array_push($_SESSION['cart_array'], array(
"item_id" => $product_id,
"quantity" => 1
));
}
}
我已经更新了这个问题:
我已经设法让它只增加数组中的第一个项目,但需要它对购物车中的每个项目做同样的事情:
if(!isset($_SESSION['cart_array'])) {
$_SESSION['cart_array'] = array("item_id" => $product_id, "quantity" => 1);
} else {
if(in_array($product_id, $_SESSION['cart_array'])) {
$_SESSION['cart_array']= array("item_id" => $product_id, "quantity" => $_SESSION['cart_array']['quantity'] + 1);
} else {
array_push($_SESSION['cart_array'], array("item_id" => $product_id, "quantity" => 1));
}
}
【问题讨论】:
-
究竟是什么问题?
-
如果用户再次为购物车中的商品单击添加到购物车,我无法将其添加到购物车中的每个商品。这条线是我卡住的地方:
if (in_array($product_id, $_SESSION['cart_array'])) { // add 1 to items already in cart $_SESSION['cart_array'] = $product_id . " " . "Item exists, add 1"; -
用问题更新问题,不要在cmets中添加。
-
完成。我希望现在更清楚了。
标签: php