• 首页
  • 前端
    • 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
分享
0
浏览

添加商品图片异步上传

1.1、查看layUI使用方式

①引入对应的js文件

②查看文件上传使用方式

1.2、项目中使用文件上传

①将资源文件拷贝到项目中

②引入layui的js文件

③修改文件上传的type类型

④对文件上传绑定切换事件

⑤创建upload方法

先抓包结果如下



⑥修改模板增加img显示上传结果

⑦修改js处理文件上传成功

⑧修改商品添加的HTML

⑨修改js

⑩修改添加的前置钩子函数删除文件上传代码

由于目前文件上传使用了异步的方式因此此处的代码多余

1.3、使用ajaxReturn返回结果

①查看ajaxReturn方法的使用方式

②修改upload方法使用ajaxReturn

商品列表

2.1、实现显示商品的列表

①在控制器中增加方法

②在模型中增加listData方法获取数据


③拷贝模板


④修改模板





2.2、实现分页显示商品列表

①修改listData方法

②修改模板

修改循环的变量

修改使用分页

2.3、获取分类名称

修改listData方法链表查询分类名称

2.4、商品搜索

2.4.1、显示搜索的分类

①index方法获取所有的分类信息

②修改模板显示分类

2.4.2、根据搜索的提交获取数据

根据条件对商品进行搜索本质就是表单提交。对于表单提交想要去获取到对应的条件的商品信息就需要去组装sql语句中的where条件

修改listData方法



2.5、对商品列表进行优化

2.5.1、实现方式

使用替换的方式将链表查询拆分成为两次sql查询(第一次查询后期可以使用高速内存缓存系统加速)

  1. 先获取所有分类的信息
  2. 根据页码获取到当前页的商品信息(单表查询)
  3. 对商品信息进行循环根据分类的id使用第一次查询结果进行替换

2.5.2、具体代码操作

①修改index方法传递分类信息作为参数

②修改模型下的listData方法


2.6、缓存使用(重点)

2.6.1、缓存使用的原理

  1. 当读取数据时。优先查询缓存系统(文件、内存)中的内容,如果读取到了数据直接使用。如果没有读取到在查询数据库获取数据,然后在将数据写入到缓存系统中
  2. 当修改数据时,需要对缓存系统中的内容进行更新或者删除操作

2.6.2、TP中的S函数使用

2.6.3、在项目中使用S函数

①修改listData方法使用缓存

②查看效果

2.6.4、针对所有的分类的使用缓存

①修改getTree方法

②修改listData方法

③针对分类的添加对缓存进行更新

④分类到的修改更新缓存

⑤删除分类更新缓存

2.7、实现状态的点击切换

①修改商品列表的模板

②增加函数实现ajax

③创建方法处理请求


④修改模板中代码实现图片的切换

商品删除

①增加删除的连接地址

②增加方法进行删除

③修改模板

④修改Goods模型下的where条件

去掉了上下架的条件

⑤再次修改模板

商品回收站

4.1、商品回收站列表显示

①创建方法

②修改模型获取数据方法

③拷贝模板并且修改

在index模板基础上修改操作即可

4.2、商品的还原功能

①修改回收站商品列表

②修改dels方法

4.3、彻底删除

①修改模板对彻底删除增加连接地址

②添加方法实现删除

③实现模型下的删除方法

商品编辑

5.1、显示原始商品信息

①创建方法获取原始数据

②拷贝添加模板并且修改







5.2、实现修改入库

①修改编辑的方法处理表单提交

②增加方法实现修改


商品类型

6.1、商品类型介绍

商品归属于某一个分类。通过分类可以方便用户在前台界面中对商品进行筛选。当描述商品信息时,需要将商品的具体信息表述出。例如手机又cpu、内存、存储大小,衣服有颜色,尺码。对于要描述的内容可以称为属性。

为了描述出属性信息,可以在商品表中使用字段记录对应的信息。如果使用此方式会导致数据表特别庞大并且有很多字段时无用的。

因此可以将属性信息保存到一格单独的数据表中(每一条记录就是一个属性)。如果只有商品表跟属性表还不能完整的描述出商品信息

因此可以对属性做一个归类。归类及抽象一个类型出来。一个商品属于某一个类型就可以使用类型下对应的属性对商品进行描述

注意:类型只是在后台中使用,目的是为了方便管理属性

6.2、创建类型数据表

CREATE TABLE `shop_type` (

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

`type_name` varchar(255) NOT NULL DEFAULT ” COMMENT ‘类型名称’,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

6.3、类型的添加与修改

①控制中实现根据添加与修改时显示模板

②模板中展示出数据

③创建自定义模型

④实现数据的入库

标签: 商品列表商品类型商品编辑图片异步上传缓存
上一篇文章

TP3.2商城 (三)类型管理、属性管理、商品属性

下一篇文章

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