使用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 相关文章推荐
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP+swoole实现简单多人在线聊天群发
Jan 19 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
php实现基于openssl的加密解密方法
Sep 30 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
laravel-admin的多级联动方法
Sep 30 PHP
laravel 自定义常量的两种方案
Oct 14 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面向对象编程快速入门
2006/10/09 PHP
建立文件交换功能的脚本(三)
2006/10/09 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
js变换显示图片的实例
2013/04/16 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
定制FileField中的上传文件名称实例
2017/08/23 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
python dataframe NaN处理方式
2019/12/26 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
北承题目(C++)
2012/05/16 面试题
护理实习自我鉴定
2013/12/14 职场文书
高中运动会入场词
2014/02/14 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
小学中队活动总结
2015/05/11 职场文书
培训后的感想
2015/08/07 职场文书
团组织关系介绍信
2019/06/24 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis