[英]how to add multiple items to cart with cookies method
当我将第二个项目添加到购物车时,第一个项目将被替换
这是我的代码(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方法的购物车中所有选定的项目。 有人可以帮我吗?
这些天我的PHP有点生锈,但是似乎每次您在Cart对象上调用add()方法时,都会重写cookie。 在您的Cart构造函数中,您将cookie内容读入本地var $savedCardArray
(typo?),但是随后您在add()方法中对本地var $items
进行了操作,向其中添加了新元素并保存了cookie。
我建议重构此代码。 首先,将此类称为CartUpdate有什么特殊原因吗? 只需将其命名为购物车即可。 在构造函数中,将cookie读入实例变量,这样一旦您从cookie中读取了内容,就可以在Cart实例的其他方法中对其进行访问。 您还可以提供get()方法以返回购物车中的商品数组,以及提供total()方法来计算总价。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.