Thinkphp——商品加入购物车在购物车列表显示(还有购物车删除)

1.商品详情页面添加到购物车如下:

2.对应的控制器里有操作方法

//添加到购物车
    function addTocart(){
        if(I("sub",0)){
            $goods_id=I("goodsId",0);//获取goodsId参数 自动判断get或者post
            $goods_num=I("goodsNum",0);
            //如果是登录状态(购物车数据存入数据库)
            if(session("user_id")){
            $uid=session("user_id");
            D('Cart')->addToCart($uid,$goods_id,$goods_num);
            if($data){
                echo "<script>alert('加入购物车成功');location.href='Cart/showlist'</script>";    
            }
            }else{//否则没有登录时如下,(没登录,购物车数据存入session)
                $arr=array("goods_id"=>$goods_id,"goods_num"=>$goods_num);
                $data=unserialize(session("cart"));//取出session里其他的数据
                $is_repeat=false;
                foreach($data as $k=>$v){
                    if($v['goods_id']==$goods_id){//如果数据重复,就更新数据
                        $data[$k]['goods_num']=$goods_num;
                        $is_repeat=true;
                    }    
                }
                if(!$is_repeat){//如果不重复,就追加一个
                    $data[]=$arr;
                }
                $data=serialize($data);//serialize() 把变量和它们的值编码成文本形式
                session("cart",$data);//然后存入session
            }
            echo "<script>alert('加入购物车成功');location.href='../Cart/showlist'</script>";    
        }

};

3.加入购物车要用到的CartModel.class.php如下:

<?php
//Cart购物车数据模型Model
namespace Home\Model;
use Think\Model;

class CartModel extends Model{
    //可以给当前Model进行一些个性化的设计
    function addToCart($uid,$goods_id,$goods_num){
        /*echo $uid,$goods_id,$goods_num;*/
        $arr=array("goods_id"=>$goods_id,"goods_num"=>$goods_num);
        $data=unserialize($this->getCart($uid));//根据唯一索引uid查询
        
        $is_repeat=false;
        foreach($data as $k=>$v){
            if($v['goods_id']==$goods_id){//如果数据重复,就更新数据
                $data[$k]['goods_num']=$goods_num;
                $is_repeat=true;
            }    
        }
        if(!$is_repeat){//如果不重复,就追加一个
            $data[]=$arr;
        }
        $data=serialize($data);//serialize() 把变量和它们的值编码成文本形式
        $ndata=array();
        $ndata["cart_uid"]=$uid;
        $ndata["update_time"]=date("Y-m-d h:i:s");
        $ndata["cart_info"]=$data;
        
        $this->add($ndata,array(),true);
    }
    
    function getCart($uid){
        return $this->where("cart_uid='{$uid}'")->getField("cart_info");
    }
}
?>

4.然后建一个购物车控制器CartController.class.php:

5.模板里如下所示:

6.如果好多个页面都需要显示购物车里商品数和总价格,在CartController控制器里建一个如下方法:

在其他控制器里跨控制器引用:

模板里{$Number}即可



购物车删除如下:

控制器里如下:


初学者如需购买thinkphp程序(包括前后台),加个人微信LBXZFR2013


微信扫描关注“公众号” 有惊喜

公众号ID“lbxzsan7378”



基于ThinkPHP 5.1框架打造的多商户电商平台,是目前完善度领先的电商管理平台标准化产品,全新的产品模式很好地诠释电子商务在现今及未来的发展模式,强大的插件可插拔扩展制,让您在的行业电商所向披靡,系统拥有PC、手机WAP、微商城、买家APP、卖家APP、微信小程序,六端合一,六端互通,真正实现全网营销,极其适合企业及个人快速上线商务平台。 系统代码清晰易懂,大量的可视化报表便于运营者决策,丰富的营销功能让系统的应用场景广阔,良好的插件机制使系统更加易于扩展。系统操作简单,安全稳定,更新迭代快速,是广大用户直接使用和二次开发的最佳选择。 电商系统功能 (一) 系统管理:菜单权限、前台菜单、角色管理、职员管理、登录日志、操作日志、图片空间、商城消息、风格设置、计划任务 (二) 基础设置:商城配置、导航管理、广告管理、广告位置、银行管理、支付管理、地区管理、友情链接、快递管理、消息模板 (三) 会员管理:会员等级、会员管理、账号管理 (四) 文章管理:文章管理、文章分 (五) 运营管理:推荐管理、商品推荐、店铺推荐、品牌推荐、财务管理、资金管理、提现申请、结算管理、商家结算、充值送、退款原路返回 (六) 订单管理:订单管理、投诉管理、退款管理 (七) 店铺管理:店铺认证、开店申请、店铺管理、停用店铺 (八) 商品管理:商品管理、已上架商品、待审核商品、违规商品商品商品属性、品牌管理、商品规格、评价管理 (九) 虚拟物品自动发货:虚拟商品上架、卡密管理、自动发货 (十) 扩展管理:插件管理、钩子管理 (十一) 分销管理:分销管理菜单、分销商家列表、分销商品列表、佣金分成列表、推广用户列表 (十二) 数据分析:商品销售排行、店铺销售统计、销售额统计、销售订单统计、新增会员统计、会员登录统计 (十三) 营销管理:三级分销,商品团购,限时拍卖、微砍价、优惠券、满减、满送、满包邮、签到送积分、积分商城,拼团 (十四) 微信管理:公众号设置、自定义菜单、用户管理、主动回复文本信息、主动回复图文信息、微信消息模板 (十五) 支付管理:支付宝支付,微信支付、银联支付、货到付款、积分支付、余额支付 (十六) 短信接口:中国网建、阿里大于、阿里云-云通信、短信宝 (十七) 登录接口:QQ登录、微信登录、微博登录、支付宝登录 (十八) 物流接口:快递100接口 (十九) 其他接口:LBS、UCenter通信接口(可与社区论坛等同步登录退出)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值