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 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
php 不同编码下的字符串长度区分
Sep 26 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
CI框架简单邮件发送类实例
May 18 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
Laravel配合jwt使用的方法实例
Oct 25 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数组是否为空的代码
2011/09/08 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
Javascript 类型转换方法
2010/10/24 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
深入解析神经网络从原理到实现
2019/07/26 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
药学专业大学生个人的自我评价
2013/11/04 职场文书
师范应届毕业生自荐信
2013/11/18 职场文书
公务员培训心得体会
2013/12/28 职场文书
公司新员工的演讲稿注意事项
2014/01/01 职场文书
七年级音乐教学反思
2014/01/26 职场文书
保管员岗位职责
2015/02/14 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
用Python爬取某乎手机APP数据
2021/06/15 Python