- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
商品管理-图片上传和缩略图
问题一:图片上传和缩略图的代码写在哪里?
答:写在模型里面,也建议写在模型里面。
问题二:写在模型的那个方法里面?
答:写在模型的特定方法,这些方法不需要我们程序员自己手工的调用,TP会在特定的时间调用这些方法(插入数据之前,插入数据之后,修改数据之前,修改数据之后,删除。。。。)
_before_insert($data, $option):在调用add方法(将数据插入到数据库)时这个方法就自动调用了
_after_insert($data, $option):在调用add方法成功插入数据之后会调用这个方法
_before_update($data, $option):在调用save方法时这个方法就自动调用这个方法
_after_update($data, $option):在成功save数据之后自动调用这个方法
_before_delete($data, $option):在调用delete方法时这个方法就自动调用了
_after_delete($data, $option):
图片上传-缩略图生成
图片信息的配置文件
2. GoodsModel里面的前置钩子($data里面就是要插入数据库的数据)
图片缩略图生成
数据显示分页操作
在goodsController里面定义lst方法
lst.html静态页面做显示
商品管理-搜索-排序-删除
修改lst.html页面增加一个form表单
代码:
显示:
在goodsController的lst方法里面,增加搜索处理条件拼接
完成数据的删除
在lst页面增加按钮
在goodsController里面增加del方法
思考:在删除数据之前需要先删除图片
在删除的前置钩子里面完成图片的删除
在系统model的delete方法分析,可以看到在执行真正删除之前,执行了删除的前置钩子方法
待完善功能
1. 完成商品的编辑,并在编辑前置钩子里面实现图片的更新
2. 将上传的功能封装成一个函数 uploadImg()
3. 将删除图片的函数封装成一个函数 deleteImg()
用户体验改善
在用户鼠标失去焦点,和点选排序规则的时候完成搜索
在无数据显示的时候,完成友情提示,商品信息不存在
扩展
图片的上传大小受哪一些限制?
答:浏览器
其实php.ini文件里面
upload_max_filesize = 2M 限制单个文件上传大小
post_max_size = 8M 整个表单允许数据(4张)
在上传类里面限制图片大小 $upload-maxSize
扩展ajax如何做无刷新分页?
答:
为每一个a链接绑定一个点击事件
需要获取每个a链接的href
写一个简单正则,然后获取页面 (\d+) ===11
发送一个ajax调用,并传递这个页码参数
在服务器脚本接受这个ajax调用,获取页码参数,在model里面根据页面获取数据(limit)
数据处理成json格式,然后在返回给前台(浏览器)
对数据遍历,然后拼接成字符串_html
获取需要填充地方$(“contianer”).html(_html) html默认直接覆盖
实现
事件委托(代理)?(js必问)冒泡
答:把事件交给别人做,上层元素(冒泡特性)
在实际的事件绑定过程之中,如果绑定的元素过多,那么需要更多的开销来绑定事件。如果,只绑定一个事件,利用事件冒泡获取对应的元素(event事件源),拿下面的例子说,那就只需要给div绑定一个事件就可以了,event代表当前被操作的DOM对象 event.target 获取当前点击的对象 做出判断 href
什么是js里面的闭包?
答:函数内部返回函数(包含当前定义时候的一些变量信息,可以变量信息一直保持)做一个计数器。
function counter(){
var num=0;
return function(){
num++;
}
}
var jishuqi = counter();
jishuqi();
原型链和作用域链?
答:原型存在的意义就是为了继承
原型链:在构造函数有一个prototype属性,这个属性指向一个实际存在的对象(json new Dog)
new 构造函数 实例化的对象 __proto__ 指向 === new Dog 方法或者属性
作用域链:在js中内层作用域是可以调用外层作用域里面的变量,但是外层是不能调用内层变量信息。
函数是不是变量?
函数是不是对象?
var f1 = function(){};
var test1 = new Test();
TP中的U函数?
答:是利用程序自动的生成URL地址
原创力文档


文档评论(0)