入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

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

创建时间:2015-10-27 投稿人: 浏览次数:4233

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 HomeModel;
use ThinkModel;

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”



声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。