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 mkdir()定义和用法
Jan 14 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
php读取文件内容的几种方法详解
Jun 26 PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
php实现的农历算法实例
Aug 11 PHP
浅谈PHP eval()函数定义和用法
Jun 21 PHP
微信支付扫码支付php版
Jul 22 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 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 socke 向指定页面提交数据
2008/07/23 PHP
由php的call_user_func传reference引发的思考
2010/07/23 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
php框架知识点的整理和补充
2021/03/01 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
JS前端加密算法示例
2016/12/22 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
django+js+ajax实现刷新页面的方法
2017/05/22 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
市场营销职业生涯规划书范文
2014/01/12 职场文书
幼儿园毕业教师感言
2014/02/21 职场文书
协议书格式
2014/04/23 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
党员个人整改措施
2014/10/24 职场文书
南湾猴岛导游词
2015/02/09 职场文书
诚实守信主题班会
2015/08/13 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python
详解Oracle块修改跟踪功能
2021/11/07 Oracle