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获取金书网的书名的实现代码
Jun 11 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
ThinkPHP有变量的where条件分页实例
Nov 03 PHP
php上传文件问题汇总
Jan 30 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
yii2控制器Controller Ajax操作示例
Jul 23 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
Sep 23 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 15 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遍历数组的4种方法总结
2014/07/05 PHP
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
九种原生js动画效果
2015/11/11 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
python一键升级所有pip package的方法
2017/01/16 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
住宅使用说明书
2014/05/09 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
配置Kubernetes外网访问集群
2022/03/31 Servers