【发布时间】:2016-02-27 21:00:48
【问题描述】:
这是我第一次在 stackoverflow 上发帖。我是一个相对较新的程序员,比如 Php,我有这个任务,我必须制作一个购物车
如果出现混乱或无法辨认,我深表歉意。我已经在这些论坛上搜索了大约 2 天,但我真的找不到自己的解决方案
现在我的问题如下
我从数据库中获取我的产品数据 -> 然后我单击一个产品 -> 它转到一个页面,在该页面中它将产品 ID、产品名称和价格添加到与 array_push 的会话中,然后它最终回到同一页面与购物车在哪里(购物车与产品线在同一页面上)
现在我很好地收到了会话,并且通过 var dumps 我可以看到即使在 foreach 中数组也已完全填充。
我要做的就是分别显示产品 ID/产品名称/价格。
array(6) { ["productid"]=> string(1) "6" ["productname"]=> string(11) "solexfiets6" ["price"]=> string(5) "12.99" [0]=> 字符串(1) "5" [1]=> 字符串(11) "solexfiets5" [2]=> 字符串(5) "16.99" }
前面是我正在使用的代码。也许这里有人可以解释一下发生了什么
session_start();
if(isset($_SESSION["cart"]) && count($_SESSION["cart"])> 0)
{
echo '<div id="cd-cart">';
echo '<h2>Cart</h2>';
echo '<ul class="cd-cart-items">';
echo '<li>';
foreach($_SESSION['cart'] as $id => $value) {
//var_dump($_SESSION["cart"]); // this var_dump
//echo $id; //
$products = $id;
echo $value["productname"] . '<br/>';
}
echo '</li>';
echo '</ul>';
echo '<div class="cd-cart-total">';
echo '<p>Total <span>$39.96</span></p>';
echo '</div>';
echo '<a href="#0" class="checkout-btn">Checkout</a>';
echo '<p class="cd-go-to-cart"><a href="#0">Go to cart page</a></p>';
echo '</div>';
}
感谢您的帮助
foreach($_SESSION['cart'] as $id => $value) {
print_r($value); //outputs 6solexfiets612.995solexfiets516.99
(it puts everything in the session in a string)
//var_dump($_SESSION["cart"]);
//echo $id; //
//$products = $id;
//echo $value["productname"] . '<br/>';
}
我将产品发送到此页面的方式是,当有人点击订单时,将产品 ID、产品名称和价格发送到 add_to_cart.php,然后它会执行此操作
<?php
session_start();
if(empty($_SESSION['cart'])){
$_SESSION['cart'] = array();
}
array_push($_SESSION['cart'], $_GET['productid'], $_GET['productname'], $_GET['price']);
?>
<p>Het product is toegevoegd aan uw winkelwagen</p> <a href="../cart.php">Naar winkelwagen</a>
通过我收到的所有帮助,我发现我以错误的方式发送数据。有没有更好的方法将产品发送到购物车然后循环浏览它?
我在这里就这个问题提出了一个后续问题,并提供了关于我的代码的所有信息
Sessions/foreach issue with my shopping cart
很抱歉给您带来不便
【问题讨论】:
-
我想我知道问题出在哪里,但首先,您能否将 print_r($value) 放入您的循环中(您有 var_dump 的地方)并将输出发布到问题中:) - 这个当你看到输出时,甚至可以回答你的问题。
-
非常感谢您的帮助,我已经添加了 print_r($value),现在整个会话都是这样的。对不起,我还是不明白问题是什么!
-
$value 不是一个数组...它将像
$_SESSION['cart']["productname"]一样工作 -
Offtopic:考虑到这是您的第一篇文章,格式很好。仅仅因为格式,我+1。继续努力:)
-
非常感谢!我仍然在努力解决这个问题,所以我希望也许在后续问题中有人可以为我解决这个问题!