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
PHP初学者常见问题集合 修正版(21问答)
Mar 23 PHP
谷歌音乐搜索栏的提示功能php修正代码
May 09 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 PHP
Zend Framework分页类用法详解
Mar 22 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
php探针不显示内存解决方法
Sep 17 PHP
laravel中的fillable和guarded属性详解
Oct 23 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
缓存技术详谈―php
2006/12/14 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
JsDom 编程小结
2011/08/09 Javascript
js URL参数的拼接方法比较
2012/02/15 Javascript
javascript加号&quot;+&quot;的二义性说明
2013/03/04 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
活动邀请函范文
2014/01/19 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL