CI框架学习笔记第四天
来源:互联网 发布:dx 1vb大屏幕显示器 编辑:程序博客网 时间:2024/06/04 19:51
此文章为自己书写,在Word上做的笔记,然后拷贝到这上边的,无任何抄袭。另外若是程序有任何问题可以评论,也可私信我。
若是想看整个学习笔记代码和数据库可点击此处(包含个人书写的项目代码及数据库文件)。
商品品牌的管理(主要学习文件上传实现)
通过控制器进入各个页面及调试
文件上传
CI中提供了一个上传类upload。文件上传类使用过程:1.配置相关参数必须配置参数upload_path,所以要先创建好该目录,并且要保证该目录是可写的。
2.载入上传类并初始化
3.完成上传动作
使用do_upload方法上传文件,成功返回true,失败返回false。如果失败了,则可以使用
注意:默认情况下上传的文件来自于提交表单里名为userfile的文件域,并且该表单必须是”multipart”类型。如果想在执行do_upload函数之前自定义自己的文件域名称,只需要将其作为do_upload的参数即可。
上传成功后,获取到文件的名称。
上传失败,返回错误信息。
对参数配置进行改进:
由于上传可能多次用到,这样一来,我们就必须在每个需要上传的控制器设置参数,CI提供了统一配置参数的功能。
在config文件夹下,新建upload.php设置相关的配置参数。
使用了配置文件之后,他就会自动加载。
直接在控制器中手动载入upload类即可。
商品类型管理(主要实现分页类的实现)
前期工作
添加商品类型定义一个商品类型控制器完成添加和显示类型。使用分页来显示类型信息CI中提供了一个分页类,用来实现分页效果。Pagination
分页类的使用步骤:
1.载入分页类在控制器内构造函数中载入分页类
2.配置相关信息
在模型定义个方法,以获取总的记录数
3.使用配置信息初始化分页类
4.配合数据库操作完成分页
在模型中定义一个方法获取分页数据
注意参照手册:
但是我们的url链接如下:
在默认的情况下,第三个参数为分页数。
在我们的url中是第四段,因为我们使用了文件夹的子文件夹的方式,有一个admin。
所以我们需要正确的设置这个值uri_segment
5.得到分页的信息
要注意:任何一个框架提供的分页类,只是实现了展示分页信息及链接,如下:
它并不能够对数据库本身进行分页显示,对数据本身分页,还需要使用数据库操作,使用limit语句。同时使用limit语句时需要加参数,limit(
如果只有一页,则不显示分页信息,CI分页信息默认显示效果如下:
对于这个展示效果,我们可以加以改进,通过参数配置来设置:
展示的效果如下:
对于这个展示效果,还是不满意,可以扩展分页类。
参照手册:
扩展步骤:
1.复制system/library/pagination到application/library/pagination
2.编辑Pagination.php
页面显示效果:
CI的分页类,还可以针对链接,自定义添加标签,和CSS类。
商品属性管理
编辑视图文件
编辑相应的视图文件,并通过控制器链接到相应的视图文件。
编写属性的控制器
获取商品类型信息并分配到视图
此处需要增加js实现效果:
添加JS代码:
商品添加及展示
显示商品的添加、显示及编辑页面
让tab选项卡动起来,应该是js的内容
在尾部的js中,更改其路径
在线编辑器的引入:
找到引入fckeditor的位置,如下:
首先将fckeditor包拷贝到application/third_party下,然后引入
效果如下:
商品属性展示
当选择一个商品类型后,对应着商品类型的所有属性将被罗列出来。
此处是局部更新,需要使用AJAX实现。直接使用jQuery实现。引入jQuery,将jQuery文件拷贝到public/js下,这样前后台皆可运用这个jQuery文件。在视图文件中引入该jQuery文件。查阅jQuery的参考手册:
对应的js代码:
商品类型的显示:
在goods控制器中的方法, 编写create_attrs_html方法实现AJAX显示对应商品类型的属性:
public function create_attrs_html(){ #获取类型的id $type_id = $this->input->get('type_id'); $attrs = $this->attribute_model->get_attrs($type_id); #根据获取到的属性值构造html字符串 $html = ''; foreach($attrs as $v){ $html .= "<tr>"; $html .= "<td class='label'>".$v['attr_name']."</td>"; $html .= "<td>"; $html .= "<input type='hidden' name='attr_id_list[]' value=''>"; switch ($v['attr_input_type']) { case 0: #文本框 $html .= "<input type='text' name='attr_value_list[]' value=''>"; break; case 1: #下拉列表 $arr = explode(PHP_EOL, $v['attr_value']); $html .= "<select name='attr_value_list[]'>"; $html .= "<option value=''>请选择</option>"; foreach ($arr as $v){ $html .= "<option value='".$v."'>".$v."</option>"; } $html .= "</select>"; break; case 2: #文本域 break; default: ; break; } $html .= "</td></tr>"; } echo $html; }
读取商品分类信息
读取商品品牌信息
完成商品添加操作
分析要完成的任务: ![这里写图片描述](http://img.blog.csdn.net/20170604095629586?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjE4MDY2MjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) ![这里写图片描述](http://img.blog.csdn.net/20170604095641023?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjE4MDY2MjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) ![这里写图片描述](http://img.blog.csdn.net/20170604095654727?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjE4MDY2MjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)这个商品属性的值,是要插入到goods_attr表中。在goods模型中,定义一个方法完成商品添加的动作,注意添加商品的返回值,后边后用到添加的id。
默认情况下,确定按钮不能用。
稍作修改。
图像处理类的使用,配置参数:
载入并初始化:
使用缩略图方法完成缩略处理:
缩略成功后,得到缩略图的名称。
然后添加商品成功的同时,将商品的属性插入到商品与属性的关联表中。
在模型中定义该插入方法:
在goods的模型中,写一个方法完成获取推荐商品信息:
- CI框架学习笔记第四天
- ci框架学习笔记
- CI框架学习笔记
- CI框架学习笔记第二天
- TP框架学习笔记第四天
- CI框架学习笔记(一)
- PHP框架CI 学习笔记<一>
- PHP框架CI 学习笔记<二>
- CI框架学习笔记第一天
- CI框架学习笔记第三天
- CI框架学习笔记第五天
- CI 开始学习CI框架
- CI框架学习3
- CI框架学习
- CI框架学习整理
- CI框架学习 流程图
- CI框架学习
- CI框架学习总结
- 如何学习计算机编程语言
- 【Python】6“dict和set“
- Android-x86-7.1.1
- Shell循环与结构化命令
- 归并排序
- CI框架学习笔记第四天
- UI-1
- 76 从C语言函数调用发现程序运行的秘密
- maven创建web工程
- JS中for循环变量作用域
- Java中的四种引用类型 Strong, Soft, Weak And Phantom
- windows程序函数调用堆栈分布
- Hadoop之——重新格式化HDFS的方案
- java 设计模式