ThinkPHP采用实现三级循环代码实例


Posted in PHP onJuly 18, 2014

本文以实例描述了ThinkPHP采用<volist>标签实现三级循环代码,具体操作步骤如下:

1. 三级循环需要三维数组,实现代码如下:

function MakeTree($pid,$level) { 
 $map['pid'] = $pid; 
$map['level'] = $level; 
$result = $this->where($map)->order('rank ASC')->findall(); 
if($result){ 
 foreach ($result as $key => $value){ 
 $title = $value['alias']; 
 $list[$title]['id'] = $value['id']; 
 $list[$title]['pid'] = $value['pid']; 
 $list[$title]['alias']= $value['alias']; 
 $list[$title]['title'] = $value['title']; 
 $list[$title]['level'] = $value['level']; 
 $list[$title]['state'] = $value['state']; 
 $list[$title]['rank'] = $value['rank']; 
 if($value['level']<=3){ 
  $list[$title]['child'] = $this->_MakeSonTree($value['id']);
 } 
 } 
} 
return $list; 
} 

function _MakeSonTree($pid) { 
$map['pid'] = $pid; 
$result = $this->where($map)->order('rank ASC')->findall(); 
if($result){ 
 foreach ($result as $key => $value){ 
 $title = $value['alias']; 
 $list[$title]['id']= $value['id']; 
 $list[$title]['pid']= $value['pid']; 
 $list[$title]['alias']= $value['alias']; 
 $list[$title]['title'] = $value['title']; 
 $list[$title]['level'] = $value['level']; 
 $list[$title]['state'] = $value['state']; 
 $list[$title]['rank'] = $value['rank']; 
  if($this->haschild($value['id'])){  //先判断是否有第三级子类,最后的数组形如$result['child']['grandchild']; 
  $list[$title]['grandchild']=$this->_MakeSonTree($value['id']); 
  } 
 } 
} 
return $list; 
 } 

function haschild($id){ 
$result=D('LearningChannel')->where("pid=".$id)->find(); 
if($result){ 
 return true; 
 } 
 else return false; 
}

2.绑定volist标签:

$result=D('Learning') ->MakeTree(0,1); 
 //dump($result);
 $this->assign('list',$result);

3.模板部分:

<select name="category" id="select" class="text mr5"> 
 <volist name="list" id="vo"> 
  <option name="cid" value="{$vo.id}" <eq name="vo.id" value="getid">selected</eq> >{$vo.alias}</option>  
 <volist name="vo['child']" id="child"> 
  <option name="cid" value="{$child.id}" <eq name="child.id" value="getid">selected</eq> >--{$child.alias}</option>  
  <volist name="child['grandchild']" id="grand"> 
  <option name="cid" value="{$grand.id}" <eq name="grand.id" value="getid">selected</eq> >---{$grand.alias}</option>  
  </volist> 
 </volist> 
 </volist> 
 </select>
PHP 相关文章推荐
编写PHP的安全策略
Oct 09 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
php遍历解析xml字符串的方法
May 05 PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
php strftime函数的详细用法
Jun 21 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 #PHP
ThinkPHP关于session的操作方法汇总
Jul 18 #PHP
php中实现精确设置session过期时间的方法
Jul 17 #PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 #PHP
浅谈php安全性需要注意的几点事项
Jul 17 #PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 #PHP
ThinkPHP应用模式扩展详解
Jul 16 #PHP
You might like
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
JavaScript数组去重的几种方法
2019/04/07 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
Python交换变量
2008/09/06 Python
Python函数返回值实例分析
2015/06/08 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
python实现简单的购物程序代码实例
2020/03/03 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
PHP面试题-$message和$$message的区别
2015/12/08 面试题
个人简历自我鉴定
2013/10/11 职场文书
超市中秋节促销方案
2014/03/21 职场文书
开学寄语大全
2014/04/08 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
公司收款委托书范本
2014/09/20 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
小学语文复习计划
2015/01/19 职场文书
个人年终总结范文
2015/03/09 职场文书
大学生求职自荐信
2015/03/24 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
Python字符串常规操作小结
2022/04/03 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫