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 默默经典版本
Aug 04 PHP
Smarty Foreach 使用说明
Mar 23 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
php二维数组排序方法(array_multisort usort)
Dec 25 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
php中通过DirectoryIterator删除整个目录的方法
Mar 13 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
PHP crc32()函数讲解
Feb 14 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 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 闭包特性在实际应用中的问题
2009/10/30 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
HTTP 304错误的详细讲解
2013/11/13 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
python批量提交沙箱问题实例
2014/10/08 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
python中的数据结构比较
2019/05/13 Python
python调用接口的4种方式代码实例
2019/11/19 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
会计专业自荐信范文
2013/12/02 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
会计核算科岗位职责
2014/03/19 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
Java输出Hello World完美过程解析
2021/06/13 Java/Android