• 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
没有结果
查看所有结果

TP3.2商城 (六)前台登录、商品展示、商品详情页、购物车

Mr.Lee 由 Mr.Lee
2018年5月19日
在 TP3.2, TP3.2商城, 后台框架
0
TP3.2商城 (六)前台登录、商品展示、商品详情页、购物车
0
分享
4
浏览

用户登录

显示用户登录界面

①创建方法加载模板

②拷贝登录模板

③修改模板


实现登录

①控制器调用模型方法实现登录

②创建模型方法登录

使用cookie加密

①拷贝加密解密函数

②创建测试方法使用加密解密


③针对登录使用加密解密函数

④修改测试方法查看结果


商品详情页数据展示

显示商品基本信息

①获取商品基本信息

②修改模板显示数据


③处理详情信息

④显示商品详情介绍


显示商品相册

①修改方法获取相册

②修改模板显示图片

第一张图片

其他图片


显示商品属性信息

①使用原生的sql语句获取商品属性信息

②在商品方法中获取属性

③将属性信息中唯一属性拆分出来

④修改模板显示唯一属性


⑤修改方法将单选属性拆分出来


⑥修改模板


购物车

3.1、购物车功能分析

3.1.1、功能分析

1、没有登录可以使用购物车功能。需要将数据保存到cookie或者session

2、登录之后也可以使用购物车。一般可以把购物车数据写入到数据库中。登录完成之后有数据转移操作

3、当相同(属性也是一致)的商品再次加入购物车数量增加

4、同一个商品属性不同在购物车显示也不一样(“货品”)

3.1.2、购物车数据保存位置

在没有登录时购物车数据保存在cookie中,登录之后数据保存在数据库中,在用户完成登录之后需要对cookie中数据转移到数据库下

3.1.3、购物车记录什么数据

1、需要记录商品的id标识 得到标识就可以获取到商品信息

2、需要记录用户需要购买的单选属性信息。要的是属性值的id

3、需要记录购买数量

商品id

属性值的id组合

数量

1

18,19

2

3.1.4、购物中针对不同单选属性的记录方式

商品id

属性值的id组合

数量

1

18(白色),19(32g)

1

1

18(白色),20(64G)

2

对于同一个商品,针对不同的单选属性组合对应的数据应该是多条

3.1.5、cookie存储如何存储

对于cookie中存储数据。对于cookie本身只能存储字符串。可以使用PHP中数组格式存储数据然后在序列化之后写入。具体cookie中数据的保存安装PHP数组格式

Array(

Array(‘goods_id’=>1,’goods_attr_id’=>’18,19’,’goods_count’=>2),

Array(‘goods_id’=>1,’goods_attr_id’=>’18,19’,’goods_count’=>2)

)

对于上述所写的格式是php中数组格式。当需要写入到cookie中是需要进行序列化操作

3.1.6、cookie数组中key怎么命名会方便

当加入商品到购物车时,如果用户没有登录需要操作cookie。操作是需要先判断当前相同商品相同属性的商品信息是否存在。如果使用上面所写的二维数组格式判断需要循环遍历进行比较。可以将购物车中的数据转换为一维数组方便判断

格式

Array(

‘goods_id-goods_attr_id’=>goods_count

)

3.2、购物车数据表创建

CREATE TABLE `shop_cart` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`user_id` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘用户ID’,

`goods_id` int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘商品ID’,

`goods_attr_id` varchar(255) NOT NULL DEFAULT ” COMMENT ‘商品属性值id组合 多个逗号隔开’,

`goods_count` smallint(6) NOT NULL DEFAULT ‘0’ COMMENT ‘购买数量’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.3、添加商品到购物车

①修改加入购物车为表单提交

②创建购物车控制器

③修改购买数量name值

④增加隐藏域实现商品标识提交

⑤修改模板实现属性值的id提交

提交接受数据发现只有一个属性值ID提交

由于需要有多个属性值ID因此需要设置为数组格式


由于单选属性使用的是radio类型。设置为数组格式多个单选属性只会提交一个。因此需要将属性相同的设置为一组


⑥修改方法实现商品添加购物车

⑦创建购物车模型

⑧实现添加到购物车



⑨创建测试方法测试

没有登录加入购物车结果

⑩测试已经登录的用户

3.4、购物车列表显示

①创建index方法

②在模型中定义getList方法

③拷贝购物车列表模板

④修改模板资源地址

⑤修改getlist方法获取购物车中数据

没有登录的结果

已经登录的结构

⑥修改getList方法获取商品信息及属性信息

已经登录结果

没有登录

⑦模板显示

⑧控制器调用方法计算出总金额

⑨创建模型方法计算总金额

3.5、删除购物车

①修改模板设置删除的连接地址

②创建方法调用模型方法实现删除

③创建模型方法实现删除

3.6、清空购物车

①增加清空购物车连接地址

②创建方法实现清空

③在模型中创建方法

3.7、实现登录之后购物车数据转移

①创建转移的模型方法


②在登录完成之后触发转移

标签: 前台登录商品展示商品详情页购物车
上一篇文章

TP3.2商城 (七)接口、CURL、手机注册、购物车下单

下一篇文章

TP3.2商城 (五)权限认证、商品相册、商品分类、首页推荐

下一篇文章
TP3.2商城 (五)权限认证、商品相册、商品分类、首页推荐

TP3.2商城 (五)权限认证、商品相册、商品分类、首页推荐

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Search

没有结果
查看所有结果

About Me

个人随笔

Winston Lee

Programmer

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Winston Lee

About Me

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Categories

  • AJAX
  • BootStrap
  • CodeIgniter
  • CSS
  • DedeCMS
  • GIT
  • HTML
  • Javascript
  • Jquery
  • Laravel
  • Laravel在线教育平台
  • Linux
  • Memcache
  • MongoDB
  • MVC
  • Mysql
  • Nginx
  • Node
  • PDO
  • PHP
  • PHP7
  • PHP基本语法
  • PHP核心编程
  • Redis
  • Smarty
  • Socket
  • SVN
  • Swoole
  • TP3.2
  • TP3.2商城
  • TP5.0
  • TP5.0商城
  • XML
  • Yaf
  • Yii
  • Yii手机直播
  • 二次开发
  • 优化方案
  • 前端技术
  • 前端框架
  • 后台框架
  • 基本操作
  • 微信公众号
  • 数据库
  • 未分类
  • 混合APP
  • 源码Blog项目
  • 版本控制
  • 环境搭建
  • 移动端开发
  • 网站优化
  • 资料
  • 面向对象
  • 面向对象编程
  • 页面静态化

Tags

DOM Json RBAC 事件 传参 函数 分页 判断语句 匿名函数 变量 图片上传 存储过程 安装 对象 封装 属性 接口 控制器 数据库操作 数据类型 数据表 数组 文件上传 无刷新分页 权限 标签 模型 正则 流程控制 目录结构 算法 类 索引 继承 缩略图 表关系 视图 路由 运算符 选择器 递归 配置 错误处理 页面静态化 验证码
  • 首页
  • 前端
  • 前端框架
  • PHP
  • 数据库
  • 优化
  • 后台框架与实战
  • 移动开发
  • 二次开发
  • Linux
  • 版本控制
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3

没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3