• 20150417--购物车


    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

  • 相关阅读:
    GCC内联汇编 Hello
    稳定性调试汇总 Hello
    Logback配置异步输出日志
    Linux查看java进程开启的线程数量
    解决Host key verification failed.
    Linux解压tar.xz文件
    Linux在移动文件到挂载的的SD卡或者镜像时,出现 mv: failed to preserve ownership for ‘***’: Permission denied
    Linux 挂载已有的 img 镜像
    sed命令修改文本内容,可在脚本中使用
    Jmeter 性能测试 Stepping Thread Group 术语解析
  • 原文地址:https://www.cnblogs.com/lifushan/p/5472179.html
Copyright © 2020-2023  润新知