当我将第二个项目添加到购物车时,第一个项目将被替换为
这是我的代码(cart.php)
<?php
include"connect.php";
?>
<?php
$total=0;
$variety = $quantity = $bran = "";
if(isset($_COOKIE['cart']))
{
$cookie = $_COOKIE['cart'];
$cookie = stripslashes($cookie);
$savedCardArray = json_decode($cookie, true);
foreach ($savedCardArray as $key => $value) {
$variety=$savedCardArray[$key][0];
$quantity=$savedCardArray[$key][1];
$bran=$savedCardArray[$key][2];
$total = $quantity*998;
setcookie('total', $total);
}
}
?>
下面给出了cart_update页面
<?php
class CartUpdate
{
/**
* Initialize the Cart.
* @return void
*/
public function __construct() {
if(isset($_COOKIE['cart'])) {
$cookie = $_COOKIE['cart'];
$cookie = stripslashes($cookie);
$savedCardArray = json_decode($cookie, true);
}
}
function add()
{
$variety = test_input($_POST["variety"]);
$rice_type = test_input($_POST["rice_type"]);
$quantity = test_input($_POST["quantity"]);
$bran = test_input($_POST["bran"]);
$items[]=array($variety,$quantity,$bran,$rice_type);
$json = json_encode($items);
setcookie('cart', $json);
}
我需要使用此Cookie方法在购物车中选择所有商品。 谁能帮助我?
答案 0 :(得分:0)
这些天我的PHP有点生疏,但似乎每次在Cart对象上调用add()方法都会重写cookie。在Cart构造函数中,您将cookie内容读入本地var $savedCardArray
(拼写错误?),然后在add()方法中对本地var $items
进行操作,向其中添加新元素并保存cookie。 / p>
我建议重构这段代码。首先,这个类被称为CartUpdate有什么特殊原因吗?把它命名为Cart。在构造函数中将cookie读入实例变量,因此一旦从cookie中读取内容,您就可以在Cart实例的其他方法中访问它。您还可以提供get()方法来返回购物车中的商品数组以及将计算总价格的total()方法。