°

tp5修改购物车中商品的数量

PHP实战视频教程大全

tp5第四季是商城项目,在修改购物车中商品的数据的时候遇到了一点问题,下面我们说说问题的解决方法。

购入车截图:

我们的需求是点击添加或者减少商品的时候数据能够实时的发生改变

我们在购物车中存放的数据格式为:

[

‘商品id-商品属性1,商品属性2’=>购买数量,
’15-3,4’=>1,
’16-3,5’=>2,
’16-3,4’=>1,
]

当我们在购物车中点击增加或者减少或者直接输入购买数量的时候会发送ajax异步请求,该请求会发送两个参数

第一个:商品id-商品属性1,商品属性2

第二个:修改后的商品数量

得到这两个参数后我们就非常容易修改购物车中商品的实际数量了

在购物流程Flow控制器中,创建方法:

[php]
//修改购物车商品数量
public function updateCart(){
$goodsNum=input(‘goods_number’);
$idAttr=input(‘rec_id’);
model(‘Cart’)->updateCart($idAttr,$goodsNum);
}
[/php]

然后在Cart购物车模型中,创建如下方法:

[php]
//修改购物车中的商品数量
public function updateCart($idAttr,$goodsNum){
$cart=isset($_COOKIE[‘cart’]) ? unserialize($_COOKIE[‘cart’]) : array();
$key=$idAttr;
$cart[$key]=$goodsNum;
$aMonth=time()+30*24*3600;
setcookie(‘cart’,serialize($cart),$aMonth,’/’);
}
[/php]

注意,购物车的数据是保存在cookie当中的,所以我们保存的数据必须是字符串,如果是数组必须serialize序列化为字符串,同时读取的时候再进行反序列化成为数组即可。

打赏
  喜欢