QQ登录 账号密码登陆 官网首页

加入购物车原理

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
TPshop很多地方 如 ajax分页,帅选,加载更, 加入购物车等。。。 都把前端几十上百行的js组装代码缩减成了一行核心代码,简介易懂。
 
点击 加入购物车时 我们发现其实调用了 AjaxAddCart(104,1,0); 方法
以上图可以看出TPshop 在选择规格和数量 加入购物车时  ajax post 了 以下几个属性 
 
goods_id    104        // 商品id
goods_num    2          // 购买数量
goods_spec[内存]     101     //商品规格 内存 = 101,其中101 数据库中表示内存
goods_spec[颜色]     56    // 颜色 56 在TPshop数据库中表示 白色
 
这些参数 提交到后台php 处理。 我们可以发现TPshop 做法很简单, 不像其他商城 通过js 去获取 内存 获取颜色 获取数量
然后js 拼接 成一大串代码 再用ajax去提交到后台PHP,  而在TPshop里面只用了一行js 代码 就解决了这些所有问题,后后台php保持不变
我们看看下面的 店家加入购物车方法
 
$.ajax({
        type : "POST",
        url:"/index.php?m=Home&c=Cart&a=ajaxAddCart",
        data : $('#buy_goods_form').serialize(),// 重点在这里将商品表单序列化提交
        dataType:'json',
        success: function(data){
           // 成功之后返回
        });
 
可以看出TPshop提交购物车的时候 采用了 $('#buy_goods_form').serialize(),// 重点在这里将商品表单序列化提交 不管多么复杂的商品规格属性都一句话整个表单提交了
而后台PHP接收的代码 跟平时一样简单没有任何区别
后台控制器代码
/**
 * ajax 将商品加入购物车
 */
function ajaxAddCart()
{
    $goods_id = I("goods_id"); // 商品id
    $goods_num = I("goods_num");// 商品数量
    $goods_spec = I("goods_spec"); // 商品规格            
   
 $result $this->cartLogic->addCart($goods_id$goods_num
$goods_spec,$this->session_id,$this->user_id); // 
将商品加入购物车                     
   exit(json_encode($result));       
}