if (isset($_GET['addCart'])&& is_numeric($_GET['addCart']))
{
$item = $_GET['addCart'];
$_SESSION ['cart'][$item] = $item;
echo "<h3 class=change> Item ".$item." has been added to cart.</h3>";
foreach($_SESSION['cart'] as $myItem)
{
echo "<br>item: ".$myItem."<br>";
}
}
我无法在购物车中显示这些商品。 当我运行此代码时,我得到一个警告:为foreach()提供的参数无效。
修改 但是,这很好用:
$_SESSION['shoppingCart'] = array();
$_SESSION['shoppingCart']['1'] = 2;
$_SESSION['shoppingCart']['2'] = 3;
//get all items
foreach($_SESSION['shoppingCart'] as $item)
{
echo"<br>contents of shoppingcart ".$item."<br>";
}
修改
会话已启动。 我认为这与这一行有关:
$_SESSION ['cart'][$item] = $item;
我尝试了这两个,它不起作用:
`$_SESSION ['cart']['$item'] = $item`;
`$_SESSION ['cart'][] = $item`;
第一个错误错误:警告:非法字符串偏移&#39; $ item&#39;
第二个错误:致命错误:字符串不支持[]运算符
答案 0 :(得分:0)
foreach
用于键控数组。如果$_SESSION['cart']
不是键控数组,请改用for
循环。
for ($i=0;$i<count($_SESSION['cart']);$i++){
echo "$_SESSION['cart'][$i]";
}
答案 1 :(得分:0)
嗯,这取决于您的购物车商品如何存储在$ _SESSION [&#39;购物车&#39;] 如果$ _SESSION [&#39; cart&#39;]包含一系列项目,您应该执行以下操作:
$items = $_SESSION['cart'];
for($i=0; $i<count($items); $i++)
{
echo $items[$i].'<br />';
}
答案 2 :(得分:0)
您的代码适用于我。
请检查您的php会话配置是否正常。使用phpinfo()
并检查session.*
配置,查找session.save_path
- 检查您是否有此导演,并且您的网络服务器可以在那里写。
还尝试将session_start();
放在脚本的开头。
答案 3 :(得分:0)
您应该尝试初始化会话的购物车索引
if(!isset($_SESSION['cart'])) {
$_SESSION['cart'] = array();
}
在您尝试向其添加项目之前。另外,请务必使用session_start()
函数