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
php下使用iconv需要注意的问题
Nov 20 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
php轻松实现中英文混排字符串截取
May 28 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
php实现的Curl封装类Curl.class.php用法实例分析
Sep 25 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
Aug 07 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
PHP接入支付宝接口失效流程详解
Nov 10 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中利用post传递字符串重定向的实现代码
2011/04/21 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中几种操作字符串的方法的介绍
2015/04/09 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python获取代理IP的实例分享
2018/05/07 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
python实现两张图片的像素融合
2019/02/23 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
Python龙贝格法求积分实例
2020/02/29 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
公司周年庆典邀请函
2014/01/12 职场文书
师德建设实施方案
2014/03/21 职场文书
奶茶店创业计划书
2014/08/14 职场文书
社区助残日活动总结
2014/08/29 职场文书
元旦标语大全
2014/10/09 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android