セッションを使用して単純なショッピング カートにデータを入力して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] =>
)
)
)