$cart[]=$itemId;
和array_push();
函数似乎没什么用。
if (isset($_POST['item'])) {
$item = $_POST['item'];
$panier = array();
$panier[] = $item;
print_r($panier);
}
只是为了解释代码,当按下“添加到购物车”按钮时将使用此代码,并从post变量中保留产品ID,然后每次添加到数组中,而不是我只获得数组中的单个值每次按下按钮添加都会不断变化。
答案 0 :(得分:0)
那是因为你每次都在创建一个新数组,然后只为它添加一个值。删除$panier = array()
以避免每次都创建新数组。
将@ IncredibleHat的建议结合到工作示例中:
$item = 0;
while($item <= 5) {
if (!isset($panier)) { $panier = array(); }
$panier[] = $item;
$item++;
}
print_r($panier);
请注意,如果删除if(!isset($panier)
,则$panier
最终只包含最后一个值,因为它会重新初始化以清空循环中的每次迭代。
答案 1 :(得分:0)
除了不使用请求之间存在的存储空间外,您的方法还会阻止人们购买多件商品:
<?php
session_start();
if (isset($_POST['item'])) {
$_SESSION['panier'][$_POST['item']]=
isset($_SESSION['panier'][$_POST['item']) ?
$_SESSION['panier'][$_POST['item']] + 1 :
1;
}