使用ThinkPHP的自动完成实现无限级分类实例详解


Posted in PHP onSeptember 02, 2016

一、实现效果

使用ThinkPHP的自动完成实现无限级分类实例详解 

二、主要代码

1、模板

使用ThinkPHP的自动完成实现无限级分类实例详解

  2、控制器

·index模块

使用ThinkPHP的自动完成实现无限级分类实例详解

·add模块

使用ThinkPHP的自动完成实现无限级分类实例详解 

3、模型

使用ThinkPHP的自动完成实现无限级分类实例详解

三、代码

以便于各位看官复制测试

  1、模板

<form action="__URL__/add" method="post">
栏目<select name="fid" size=20>
<option value="0">栏目</option>
<volist name='list' id='vo'>
<option value="{$vo['id']}">
{$vo['blank']}{$vo['name']}</option>
</volist>
</select><br/>
添加栏目:<input type="text" name='name'/><br/>
<input type="submit" value="添加"/> 
</form>

2、控制器

<?php
class IndexAction extends Action
{
/**
+----------------------------------------------------------
* 默认操作
+----------------------------------------------------------
*/
public function index(){
$Column=new ColumnModel();
$list=$Column->field("id,name,fid,sort,concat(sort,'-',id) nsort")->order('nsort asc')->select();
foreach($list as $key=>$val){
$layer=count(explode('-',$list[$key]['nsort']));
$list[$key]['blank']='';
for($i=0;$i<$layer;$i++){
if($i==$layer-1){
$list[$key]['blank'].='---|';
}else{
$list[$key]['blank'].='---';
}
}
}
$this->assign('list',$list);
$this->display();
}
public function add(){
$Column=new ColumnModel;
$Column->create();
if($Column->add()){
$this->success('添加成功');
}else{
$this->error($Column->getError());
}
} 
} 
?>

  3、模型

<?php
class ColumnModel extends Model{
protected $_auto=array(
array('name','trim',0,'function'),//过滤用户不小心输入的空白字符
array('sort','createsort',0,'callback'),
);
/*
*自动完成sort字段
*根据POST过来的fid来查询上级sort,以确定本级sort
*/
protected function createsort(){
$fid=$_POST['fid']?(int)$_POST['fid']:0;//如果用户没有选择父栏目,则默认父栏目id为0
if($fid!='0'){
$list=$this->where("id=$fid")->find();
$data=$list['sort'].'-'.$fid;
}else{
$data='0';
}
return $data;
}
}
?>

以上所述是小编给大家介绍的ThinkPHP的自动完成实现无限级分类实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP个人网站架设连环讲(三)
Oct 09 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Mar 10 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
利用php绘制饼状图的实现代码
Jun 07 PHP
PHP设计模式之代理模式的深入解析
Jun 13 PHP
6种php上传图片重命名的方法实例
Nov 04 PHP
PHP根据IP判断地区名信息的示例代码
Mar 03 PHP
php+ajax导入大数据时产生的问题处理
Jun 11 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 #PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 #PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 #PHP
深入浅析Yii admin的权限控制
Aug 31 #PHP
php解决和避免form表单重复提交的几种方法
Aug 31 #PHP
PHP Callable强制指定回调类型的方法
Aug 30 #PHP
thinkphp配置文件路径的实现方法
Aug 30 #PHP
You might like
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
php计算整个目录大小的方法
2015/06/01 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
浅谈PHP的反射机制
2016/12/15 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
浅谈五大Python Web框架
2017/03/20 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
python tkinter实现连连看游戏
2020/11/16 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
视光学专业毕业生推荐信
2013/10/28 职场文书
学生喝酒检讨书
2014/02/06 职场文书
党员承诺践诺书
2014/05/20 职场文书
2014年库房工作总结
2014/11/26 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS