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时间戳与日期的转换
Jun 06 PHP
php类常量的使用详解
Jun 08 PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 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关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
php explode函数实例代码
2012/02/27 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
一个JS小玩意 几个属性相加不能超过一个特定值.
2009/09/29 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python实现的栈(Stack)
2018/01/26 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
Python模拟随机游走图形效果示例
2018/02/06 Python
Python3几个常见问题的处理方法
2019/02/26 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
python 发送json数据操作实例分析
2019/10/15 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
大三毕业自我鉴定
2014/01/15 职场文书
五四青年节演讲稿
2014/05/26 职场文书
校本教研活动总结
2014/07/01 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
地道战观后感
2015/06/04 职场文书
毕业证明模板
2015/06/19 职场文书
创业计划书之美甲店
2019/09/20 职场文书