拆分项目数量,类似于购物车

问题描述:

我正在寻找显示类似于购物车的数字。我被给了php代码,它现在显示一个cookie值,它的作品种类可以接受,如果你点击添加到购物车,并且在你输入的内容中有错误,它会向cookie添加1,但不会添加任何东西到购物车。拆分项目数量,类似于购物车

我尝试使用AngularJS来显示会话变量的工作稍微好一些,但它不会更新,直到您刷新页面。

任何人都可以指出我正确的方向,所以我可以尝试找出自己。

这是我orginally给出的代码:

if (!isset($_COOKIE['count'])) 
{ 
    $cookie = 0; 
    setcookie("count", $cookie); 
} 
else 
{ 

    if (isset($_GET["add"])) 
     { 
     $cookie = ++$_COOKIE['count']; 
     setcookie("count",$cookie); 
     } 
    else if (isset($_GET["remove"])) 
     { 
     $cookie = --$_COOKIE['count']; 
     setcookie("count", $cookie); 
     } 
    else { 
     $cookie = $_COOKIE['count']; 
     setcookie("count", $cookie); 
     } 

    $cookie = $_COOKIE['count']; 

    if ($cookie <= 0) 
    { 
     $cookie = 0; 
     setcookie("count", $cookie); 
    } 
} 

它再印像这样

<li><a><div ng-app="" class="circle"> <?php echo $cookie ?></div></a></li> 

我试图换款回波$ cookie来呼应会话阵列长度和使用也尝试

<li><a><div ng-app="" class="circle">{{ <?php echo count($_SESSION['certificates']) ?>}}</div></a></li> 

我也试过此链接:https://codepen.io/anon/pen/mMwVPb

但并不完全理解这一切,并不能让它在我的网页上工作。

它几乎按我希望的方式工作,但我只需刷新页面以显示会话数组长度。如果有一种方法可以显示会话的值,而不必刷新页面,我认为这可以解决它。

+0

你能后你试过的代码? – Vivz

+2

由于您没有提供任何代码,因此无法为您提供帮助。 – epascarello

+0

更新了问题 – Theory

我不会惹一块饼干,除非你想在用户离开你的网站时留下购物车,然后再回到你的商店。此时,您可以将购物车中的商品存储在数据库中,或者将某个商品的参考ID存储到cookie或其他内容中。人们可以关闭cookies,因此如果您的购物车取决于Cookie并且用户将其关闭,那么您就是SOL。

我想你的车在会话中储存,因为你可以在会话中轻松存储阵列:

# Simple example of add to cart function 
addToCart($sku,$qty=1) 
    { 
     # Make sure the quantity is a number 
     if(!is_numeric($qty)) 
      $qty = 1; 
     # If the cart is not yet set, create it 
     if(!isset($_SESSION['cart'])) 
      $_SESSION['cart'] = array(); 
     # If the item is already in the cart, increment the quantity 
     if(isset($_SESSION['cart'][$sku])) 
      $_SESSION['cart'][$sku] += $qty; 
     # If not in the cart already, create it 
     else 
      $_SESSION['cart'][$sku] = $qty; 
    } 

# Remember to start session on every page 
session_start(); 

# To add to cart 
if(isset($_REQUEST['add'])) { 
    # Insert the sku in param 1, quantity into param 2 
    addToCart($_REQUEST['ITEMCODE'],$_REQUEST['QTY']); 
} 
# Set some storage variables 
$totalQty = 
$itemsQty = 0; 
# To get qty in cart 
if(!empty($_SESSION['cart'])) { 
    # Loop through items in cart 
    foreach($_SESSION['cart'] as $sku => $qty) { 
     $totalQty += $qty; 
     $itemsQty += 1; 
    } 
} 
?> 
<!-- If you have 5 products in the cart, this will say 5 --> 
<h2>Total products in cart: <?php echo $itemsQty ?></h2> 
<!-- If you have 5 products with quantity of 2 per product, this will write 10 --> 
<h2>Total items in cart: <?php echo $totalQty ?></h2> 
+0

所以我使用了这个会话,它几乎按我想要的方式工作。购物车编号显示在标题中,并且始终位于实际编号后面1,所以如果是2个项目,它将显示1。 – Theory

+0

如果将商品添加到购物车,并且在刷新页面之前它不注册,则只需执行在添加购物车后重新定向标题, – Rasclatt