如何使用cookies方法将多个项目添加到购物车

时间:2015-05-09 04:41:24

标签: php

当我将第二个项目添加到购物车时,第一个项目将被替换为
这是我的代码(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方法在购物车中选择所有商品。 谁能帮助我?

1 个答案:

答案 0 :(得分:0)

这些天我的PHP有点生疏,但似乎每次在Cart对象上调用add()方法都会重写cookie。在Cart构造函数中,您将cookie内容读入本地var $savedCardArray(拼写错误?),然后在add()方法中对本地var $items进行操作,向其中添加新元素并保存cookie。 / p>

我建议重构这段代码。首先,这个类被称为CartUpdate有什么特殊原因吗?把它命名为Cart。在构造函数中将cookie读入实例变量,因此一旦从cookie中读取内容,您就可以在Cart实例的其他方法中访问它。您还可以提供get()方法来返回购物车中的商品数组以及将计算总价格的total()方法。