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 相关文章推荐
thinkPHP的Html模板标签使用方法
Nov 13 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
PHP生成RSS文件类实例
Dec 05 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
前端必学之PHP语法基础
Jan 01 PHP
使用PHP实现微信摇一摇周边红包
Jan 04 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
Nov 08 PHP
PHP 匿名函数与注意事项详细介绍
Nov 26 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHPExcel 修改已存在Excel的方法
May 03 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
服务器端解压缩zip的脚本
2006/12/22 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
jquery 笔记 事件
2011/11/02 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
vue实现局部刷新的实现示例
2019/04/16 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Python 查看文件的编码格式方法
2017/12/21 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
python 搜索大文件的实例代码
2019/07/08 Python
Python如何发送与接收大型数组
2020/08/07 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
环境工程求职简历的自我评价范文
2013/10/24 职场文书
电气专业推荐信范文
2013/11/18 职场文书
电子商务专员岗位职责
2013/12/11 职场文书
客服部工作职责范本
2014/02/14 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
面试通知邮件
2015/04/20 职场文书
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
详解Python中的进程和线程
2021/06/23 Python