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
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续二
Apr 03 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
PHP加密解密类实例分析
Apr 20 PHP
php操作redis缓存方法分享
Jun 03 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 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新手上路(八)
2006/10/09 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
php写的AES加密解密类分享
2014/06/20 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
jquery实现表格隔行换色效果
2015/11/19 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
python使用matplotlib画饼状图
2018/09/25 Python
Python模块的加载讲解
2019/01/15 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
技术人员面试提纲
2013/11/28 职场文书
C++程序员求职信范文
2014/04/14 职场文书
部门年终奖分配方案
2014/05/07 职场文书
企业人事任命书
2014/06/05 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
开发房地产协议书
2014/09/14 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
Python time库的时间时钟处理
2021/05/02 Python