thinkphp做的session购物车,求详细代码。有完整例子的可以发下。非常感谢

 我来答 举报
tyua07
推荐于2016-01-04 · TA获得超过156个赞
知道小有建树答主
回答量:101
采纳率:100%
帮助的人:104万
展开全部
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<?php
 
 
class CartTool {
    private static $ins = null;
    private $items array();
 
    final protected function __construct() {
    }
 
    final protected function __clone() {
    }
 
    // 获取实例
    protected static function getIns() {
        if(!(self::$ins instanceof self)) {
            self::$ins new self();
        }
 
        return self::$ins;
    }
 
 
    // 把购物车的单例对象放到session里
    public static function getCart() {
        if(!isset($_SESSION['cart']) || !($_SESSION['cart'instanceof self)) {
            $_SESSION['cart'] = self::getIns();
        }
 
        return $_SESSION['cart'];
    }
 
 
    /*
    添加商品
    param int $id 商品主键
    param string $name 商品名称
    param float $  商品价格
    param int $num 购物数量
    */
    public function addItem($id,$name,$price,$brand,$thumb,$num=1) {
         
        if($this->hasItem($id)) { // 如果该商品已经存在,则直接加其数量
            $this->incNum($id,$num);
            return;
        }
         
        $item array();
    $item['id'] = $id;
        $item['name'] = $name;
        $item['price'] = $price;
    $item['brand'] = $brand;
    $item['thumb'] = $thumb;
        $item['num'] = $num;
         
        $this->items[$id] = $item;
         
        return $this->items[$id];
         
         
    }
 
 
    /*
    修改购物车中的商品数量
    param int $id 商品主键
    param int $num 某个商品修改后的数量,即直接把某商品的数量改为$num
    */
    public function modNum($id,$num=1) {
        if(!$this->hasItem($id)) {
            return false;
        }
 
        $this->items[$id]['num'] = $num;
 
    }
 
 
    /*
    商品数量增加1
    */
    public function incNum($id,$num=1) {
        if($this->hasItem($id)) {
            $this->items[$id]['num'] += $num;
        }
    }
 
 
    /*
    商品数量减少1
    */
    public function decNum($id,$num=1) {
        if($this->hasItem($id)) {
            $this->items[$id]['num'] -= $num;
        }
 
        // 如果减少后,数量为0了,则把这个商品从购物车删掉
        if($this->items[$id]['num'] < 1) {
            $this->delItem($id);
        }
    }
 
 
    /*
        判断某商品是否存在
    */
    public function hasItem($id) {
        return array_key_exists($id,$this->items);
    }
       
 
    /*
        删除商品
    */
    public function delItem($id) {
        unset($this->items[$id]);
    }
 
 
    /*
        查询购物车中商品的种类
    */
    public function getCnt() {
        return count($this->items);
    }
 
 
    /*
        查询购物车中商品的个数
    */
    public function getNum() {
        if($this->getCnt() == 0) {
            return 0;
        }
         
        $sum = 0;
 
        foreach($this->items as $item) {
            $sum += $item['num'];
        }
 
        return $sum;
    }
 
 
    /*
        查询购物车中商品的总金额
    */
    public function getPrice() {
        if($this->getCnt() == 0) {
            return 0;
        }
         
        $price = 0.0;
 
        foreach($this->items as $item) {
            $price += $item['num'] * $item['price'];
        }
 
        return $price;
    }
     
 
 
    /*
    返回购物车中的所有商品
    */
 
    public function all() {
        return $this->items;
    }
 
    /*
        清空购物车
    */
    public function clear() {
        $this->items = array();
    }
}




以上是类文件,需要引入的。


1
2
3
4
5
6
7
8
9
10
$cart = CartTool::getCart();
$car_goods_list $cart->all();//获取商品列表
 
$goods_num $cart->getNum();//商品个数
 
$goods_sum_price =$cart->getPrice();//总价格
 
$cart->addItem($goods_id,$goods_list['goods_name'],$goods_list['shop_price'],$goods_list['brand'],$goods_list['goods_thumb'],$num);//增加一件商品到购物车
 
$cart->clear();//清空购物车
追问

这个是购买商品页面,商品不是再同一个页面点击到购物车的。单独一个产品传到购物车,然后点击另外一个产品继续加到购物车。怎么把参数传到购物车页面显示出来。

府闳0gu238
2014-04-29 · 超过32用户采纳过TA的回答
知道答主
回答量:128
采纳率:100%
帮助的人:81.7万
展开全部
到thinkphp官网上找一个不就可以了,上面有很多的实例啊
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式