山山未迟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

image

一、购物车的需求分析

购物车数据存储的位置

(1)session里面,关闭网站,下次访问则没有购物车的数据

(2)数据库里面,存储到数据库里面,要求用户必须登录,购买成功,可以把数据给清空。

(3)存储到cookie里面,再次访问网站,能够看到以前存储到购物车里面的数据、

京东的做法,如果用户没有登录则把购物车数据存储到cookie里面,

如果用户登录了,则会把购物车数据存储到数据库里面,并把未登录存储到cookie里面的的商品给移动到数据库里面。

未登录时:要把数据存储到cookie里面。

要存储哪些数据,一般是商品的id属性购买数量

价格不需要存储,

如何存储属性,使用goods_attr表里面的 id来完成存储。

wpsFD98.tmp

构造一个数组,用于存储到cookie里面。

数组的键是’goods_id’-‘goods_attr_id’,属性id多个用逗号隔开

数组的值是购买的数量

array(

‘商品的id-属性的id’=>购买的数量

)

array(

‘1-2,6’=>10

‘2-9,12’=>20

)

存储到数据库里面如何设计表呢?

create table it_cart(

         id smallint unsigned primary key auto_increment,

         goods_id smallint not null comment '商品的id',

         goods_attr_id varchar(32) not null default '' comment 'goods_attr表属性的id多个用逗号隔开',

         goods_number tinyint not null comment '购买数量',

         user_id smallint not null comment '登录用户的id'  

)engine myisam charset utf8;

二、添加到购物车

1、新建一个cart模型,在里面添加addCart的方法。

wpsFDB8.tmp

wpsFDD9.tmp

wpsFDDA.tmp

2、新建一个Cart的控制器,并添加addCart的方法,完成商品添加到购物车。

(1)修改商品详情页面的表单,准备提交的数据

wpsFDEA.tmp

wpsFDFB.tmp

(2)接收数据,准备提交  

wpsFE0B.tmp

$goods_attr_id = $_POST[‘goods_attr_1’].’,’. $_POST[‘goods_attr_7’]

wpsFE2C.tmp

三、购物车列表页面

1、在cart模型里面添加一个购物车列表页面。

wpsFE6B.tmp

wpsFE9B.tmp

wpsFEBB.tmp

2、在cart控制器里面添加一个lst方法,取出购物车列表,拷贝对应的列表页面,并完成遍历

wpsFEEB.tmp

wpsFF2B.tmp

wpsFF3B.tmp

颜色:白色<br/>内存:4G

三、修改购物车

wpsFF5C.tmp

1、分别给两张图片一个class属性,便于选择添加事件

wpsFF8B.tmp

2、给class=”add”属性的img添加事件,

思路:把数据通过 ajax传递到后台,完成数据的修改。

要传送哪些数据?

商品的id(goods_id),属性(goods_attr_id),

在购物车列表添加一个商品id的隐藏域便于取出商品的 id.

wpsFFAC.tmp

3、在lst页面中的js 代码:

wpsFFBC.tmp

wpsFFCD.tmp

4、在cart模型里面定义一个修改(添加数量)购物车的函数,

wpsFFED.tmp

5、在购物车控制器里面添加updatecart的方法,完成ajax的修改购物车。

wpsFFEE.tmp

四、当用户登录后,把cookie里面的数据移动到数据库里面。

1在cart模型里面定义一个方法,用于把cooki数据移动到数据库

wpsE.tmp

2、登录成功后,调用该方法,

wps1F.tmp

五、获取购物车里面商品数量和总的价格

wps30.tmp

在购物车的模型里面添加一个方法,用于获取购物车商品的数量和总的价格

wps40.tmp

在index控制器里面添加一个方法用于获取购物车数据

wps51.tmp

在首页 栏目页  和  商品的详情页面    和购物车列表页面调用

wps62.tmp

六、清空购物车

在购物车模型里面添加一个函数用于清除购物车

wps72.tmp

在购物车里面调用该函数,完成清空数据

wpsA2.tmp

posted on 2016-05-08 23:01  山山未迟  阅读(252)  评论(0编辑  收藏  举报