我知道我的問題可能非常類似於Stackoverflow中的其他人。我發現了一些類似的問題,但實際上我無法爲我的問題找到正確的解決方案。使用會話遞增購物車項目數量
我正在使用Sessions和ajax-json編寫購物車。 我的產品 結構有點複雜。它的名稱,尺寸,類型,顏色和每種類型和尺寸的具體價格。重點是我不能 增加項目數量,如果名稱,尺寸,類型,顏色和價格是相同的,如果我添加相同的產品。這是我的代碼。我認爲我 寫作是正確的,但我不明白是什麼問題。 實際上,它增加了物品數量,但只增加了一次,當我檢查數組時,物品數量還沒有增加。
$data = json_decode($_POST['jsonData'], true);
$pr_type = $data['pr_type'];
$pr_size = $data['pr_size'];
$pr_link = $data['pr_link'];
$pr_color = $data['pr_color'];
$pr_price = $data['pr_price'];
$products_s = $this->getSession()->get('prof_cart');
$product = array();
if (empty($products_s)) {
$products_s = array();
} else {
$products_s = $products_s;
}
$products = Model::factory('Client_Product')->getProductById($pr_link);
$type = Model::factory("Client_Product")->getProductTypeByLink($pr_type);
$size = Model::factory("Client_Product")->getProductSizeById($pr_size);
if ($pr_type != 'undefined') {
$product['type'] = $type[0]['title'];
} else {
$product['type'] = "";
}
$isCreate = true;
foreach ($products_s as $id) {
if ($id['price'] == $pr_price &&
$id['title'] == $products[0]['title'] &&
$id['size'] == $size[0]['size'] &&
$id['type'] == $type[0]['title']) {
$id['quant']++;
$isCreate = false;
}
}
if ($isCreate) {
$product['quant'] = 1;
$product['size'] = $size[0]['size'];
$product['title'] = $products[0]['title'];
$product['price'] = $pr_price;
$product['color'] = $pr_color;
array_push($products_s, $product);
}
$sum = 0;
foreach ($products_s as $id) {
$sum += $id['price'] * $id['quant'];
}
//echo $sum;
echo "<pre>";
var_dump($products_s);
echo "</pre>";
$this->getSession()->set('prof_cart', $products_s);
$this->getSession()->set('prof_sum', $sum);
感謝!!!!!!非常感謝,它的效果很好 – 2013-05-14 16:32:22