我正在使用会话来填充简单的购物车但是,如果itemAmount
已经存在item_id
,我会在session['cart']
增加$itemAmount = $eachItem['itemAmount'];
时出现问题}。
我一直在努力增加:<?php
if (!isset($_SESSION)) {
session_start();
}
// create the cart session
if(!isset($_SESSION['cart'])) {
$_SESSION['cart'] = array();
}
?>
<?php
// if all posts are fine
if(isset($_POST['item_id'])) {
// set post values
$post_item_id = $_POST['item_id'];
$post_item_name = $_POST['item_name'];
$post_options = $_POST['item_options'];
$post_item_extras = $_POST['item_extras'];
// set initial item amount
$item_total = 1;
foreach($_SESSION['cart'] as $key => $value) {
if($value['cart_item_id'] == $post_item_id) {
$value['cart_item_amount']++;
$item_total = $value['cart_item_amount'];
}else{
}
}
// if option selected
if(isset($post_options)) {
// split to get two separate values
list($post_item_cost, $post_option_name) = explode("-", $post_options, 2);
}
// loop through extras
if(isset($post_item_extras)) {
foreach($post_item_extras as $key => $value) {
// split to get two separate values
list($post_extra_cost, $post_extra_name) = explode("-", $value, 2);
// create extras array
$item_extras[] = array(
'cart_extra_cost' => $post_extra_cost,
'cart_extra_name' => $post_extra_name
);
}
}
// add each item to an array
$cart_row = array(
'cart_item_id' => $post_item_id,
'cart_item_name' => $post_item_name,
'cart_option_name' => $post_option_name,
'cart_item_cost' => $post_item_cost,
'cart_item_amount' => $item_total,
// add the extras array
'cart_item_extras' => $item_extras
);
// add new row to the session Cart
$_SESSION['cart'][] = $cart_row;
}
?>
Array
(
[cart] => Array
(
[0] => Array
(
[cart_item_id] => 76
[cart_item_name] => Cheese Burger
[cart_option_name] => Small
[cart_item_cost] => 1.00
[cart_item_amount] => 1
[cart_item_extras] =>
)
[1] => Array
(
[cart_item_id] => 76
[cart_item_name] => Cheese Burger
[cart_option_name] => Small
[cart_item_cost] => 1.00
[cart_item_amount] => 2
[cart_item_extras] =>
)
[2] => Array
(
[cart_item_id] => 76
[cart_item_name] => Cheese Burger
[cart_option_name] => Small
[cart_item_cost] => 1.00
[cart_item_amount] => 3
[cart_item_extras] =>
)
)
)
但是,无法让它发挥作用。
这就是我现在所拥有的;
更新; 具有更好命名的代码,我仍然需要帮助让cart_item_amount增加,此时它每次都会创建一个新项目,而不是递增cart_item_amount。
{{1}}
答案 0 :(得分:1)
if($eachItem['itemID'] = $_POST['item_id']) {
=不是比较运算符,请参阅 http://php.net/manual/en/language.operators.comparison.php
应该是
if($eachItem['itemID'] == $_POST['item_id']) {
答案 1 :(得分:0)
只需使用它即可使用;
foreach($_SESSION['cart'] as $key => $value) {
if($value['cart_item_id'] == $post_item_id) {
$_SESSION['cart'][$key]['cart_item_amount']++;
return false;
}