Thinkphp无限级分类代码


Posted in PHP onNovember 11, 2015

本篇就一点一点教大家写一个无限级分类出来,其实掌握一个知识,最主要的是要掌握无限级分类的逻辑,那么写起来就很容易的多了。
首先看数据库表:xp_cate

Thinkphp无限级分类代码

控制器:CateAction.class.php

<?php
class CateAction extends Action{
function index(){
$cate=M('Cate');
$list=$cate->field("id,name,pid,path,concat(path,'-',id) as bpath")->order('bpath')->select();
foreach($list as $key=>$value){
$list[$key]['count']=count(explode('-',$value['bpath']));
}
$this->assign('alist',$list);
$this->display();
}//添加栏目
function add(){
$cate=new CateModel();if($vo=$cate->create()){
if($cate->add()){
$this->success('添加栏目成功');
}else{
$this->error('添加栏目失败');
}
}else{
$this->error($cate->getError());
}
}}
?>

模型:CateModel.class.php

<?php
class CateModel extends Model{//对应数据库中的表xp_cate
protected $_auto=array(
array('path','tclm',3,'callback'),
);function tclm(){
$pid=isset($_POST['pid'])?(int)$_POST['pid']:0;
echo ($pid);
if($pid==0){
$data=0;
}else{
$list=$this->where("id=$pid")->find();
$data=$list['path'].'-'.$list['id'];//子类的path为父类的path加上父类的id
}
return $data;
}
}
?>

模板:index.html

<form action="/Article/add" method="post">
请选择父级栏目:<select name="pid" size="20">
<option value="0">根栏目</option>
<volist name="alist" id="vo">
<option value="{$vo['id']}">
<for start="0" end="$vo['count']">
  
</for>
{$vo['name']}
</option>
</volist>
</select><br />
新的栏目名称:<input type="text" name="name" /><br />
<input type="submit" value="添加栏目" />
</form>

显示结果如下:

Thinkphp无限级分类代码

有没有掌握无限级分类的逻辑,上文分享的thinkphp无限级分类代码,希望对大家的学习有所帮助。

PHP 相关文章推荐
mysql建立外键
Nov 25 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
Session保存到数据库的php类分享
Oct 24 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
php中使用gd库实现远程图片下载实例
May 12 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
php中__toString()方法用法示例
Dec 07 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
Dec 31 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
php正则表达式使用方法整理集合
Jan 31 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
Dec 15 PHP
php验证码生成代码
Nov 11 #PHP
分享10段PHP常用代码
Nov 11 #PHP
php+mysql实现无限级分类
Nov 11 #PHP
2款PHP无限级分类实例代码
Nov 11 #PHP
PHP中set error handler函数用法小结
Nov 11 #PHP
php实现Session存储到Redis
Nov 11 #PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 #PHP
You might like
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
php利用事务处理转账问题
2015/04/22 PHP
Javascript 读书笔记索引贴
2010/01/11 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
js实现网页随机验证码
2020/10/19 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
python如何统计序列中元素
2020/07/31 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
台湾家适得:Homeget
2019/02/11 全球购物
安全生产管理责任书
2014/04/16 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android