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 相关文章推荐
BBS(php &amp; mysql)完整版(二)
Oct 09 PHP
解决MySQL中文输出变成问号的问题
Jun 05 PHP
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 PHP
Ajax+PHP快速上手及简单应用说明
Jul 24 PHP
PHP json_decode函数详细解析
Feb 17 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
Jun 04 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
php cli配置文件问题分析
Oct 15 PHP
PHP根据session与cookie用户登录状态操作类的代码
May 13 PHP
php下载文件,添加响应头的简单实例
Sep 22 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
Apr 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
Windows下的PHP5.0详解
2006/11/18 PHP
PHP内核探索之变量
2015/12/22 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
JavaScript中创建原子的方法总结
2018/08/26 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
Python contextlib模块使用示例
2015/02/18 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
python实现学生成绩测评系统
2020/06/22 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
商务日语毕业生自荐信
2013/11/23 职场文书
离婚协议书标准格式
2014/10/04 职场文书
合理化建议书
2015/02/04 职场文书
工程款申请报告
2015/05/15 职场文书
建党伟业的观后感
2015/06/01 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python