2015-08-25 8 views
0

Я собираюсь использовать session['cart'] elsewehere на сайте, чтобы показать элементы, выбранные пользователем .. (электронная коммерция). Поэтому я хочу выполнить «добавление» по количественным данным, если выбранный элемент является таким же.Как обновить количество, если выбран тот же элемент?

<?php 
session_start(); 

$return = $_POST; 
//$return ='{"qty":"54","id":"8375","action":"test"}'; 

$return['json']= json_encode($return); 

$data = json_decode($return['json'], true); 

if(empty($_SESSION['cart'])){ 
$_SESSION['cart']=array(); 
} 
array_push($_SESSION['cart'], array("quantity"=>$data['qty'],"id"=>$data['id'])); 

echo json_encode($_SESSION['cart']); 
    ?> 

DO Я добавляю «количество» здесь или в том месте, где отображаются данные сеанса, как показано ниже?

foreach($_SESSION['cart'] as $k=>$v) 
{ 

    ?> 
<tr><th><?php echo $v['id'];?></th><th><?php echo $v['quantity'];?></th></tr> 

    <?php 

} 
?> 
+0

Как насчет '$ _SESSION [ 'телега'] [ 'количество'] + = 1; ', как самый быстрый (и, конечно, не чистый) путь – Havelock

ответ

0

Это мой маленький реализация уборщик:

// create new cart if needed 
if (empty($_SESSION['cart'])) { 
    $_SESSION['cart'] = array(); 
} 

// check if item with id exists in cart 
if (array_key_exists($data['id'], $_SESSION['cart']) { 
    // update quantity only 
    $_SESSION['cart'][$data['id']] = $data['qty']; // or you can increment it 
} else { 
    // add item to cart with defined quantity 
    $_SESSION['cart'][$data['id']] = array(
     'id' => $data['id'], 
     'quantity' => $data['qty'], 
    ); 
} 

echo json_encode($_SESSION['cart']);