我正在使用会话来填充一个简单的购物车,但是,itemAmount
如果.item_id
session['cart']
我一直试图在这里增加:$itemAmount = $eachItem['itemAmount'];
但是,不能让它工作。
这就是我目前所拥有的;
更新; 具有更好命名的代码,我仍然需要帮助来增加cart_item_amount,目前它每次都会创建一个新项目而不是增加cart_item_amount。
<?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] =>
)
)
)