ThinkPHP自动填充实现无限级分类的方法


Posted in PHP onAugust 22, 2014

本文实例展示了ThinkPHP自动填充实现无限级分类的方法,是ThinkPHP常用功能之一,非常具有实用价值。现将完整实例分享给大家,供大家参考。具体实现步骤如下:

表aoli_cate如下图所示:

ThinkPHP自动填充实现无限级分类的方法

一、action部分:

aoli/Home/Lib/Action/CataAction.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('添加栏目失败');  
      }
      //dump($vo);  
    }else{
      $this->error($cate->getError());  
    }
  }
  
}
?>

二、模型部分:

aoli/Home/Lib/Model/CataModel.class.php文件如下:

<?php
class CateModel extends Model{//对应数据库中的表aoli_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;  
  }
}
?>

三、view视图部分

aoli/Home/Tpl/default/Cate/index.html页面如下:

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

相信本文所述实例对大家ThinkPHP程序设计有一定的参考价值。

PHP 相关文章推荐
PHP个人网站架设连环讲(一)
Oct 09 PHP
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
php 进度条实现代码
Mar 10 PHP
php adodb连接不同数据库
Mar 19 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
Aug 16 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
php导入大量数据到mysql性能优化技巧
Dec 29 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
ThinkPHP验证码和分页实例教程
Aug 22 #PHP
ThinkPHP文件上传实例教程
Aug 22 #PHP
ThinkPHP中ajax使用实例教程
Aug 22 #PHP
ThinkPHP中的常用查询语言汇总
Aug 22 #PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 #PHP
ThinkPHP中的三大自动简介
Aug 22 #PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 #PHP
You might like
PHP 文件扩展名 获取函数
2009/06/03 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
PHP培训要多少钱
2017/06/06 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
JavaScript开发时的五个注意事项
2007/12/08 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
python登录QQ邮箱发信的实现代码
2013/02/10 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
Django异步任务线程池实现原理
2019/12/17 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
英文版餐饮业求职信
2013/10/18 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
我的长征观后感
2015/06/09 职场文书
爱国主义电影观后感
2015/06/18 职场文书