ThinkPHP采用<volist>实现三级循环代码实例
2014-07-18 15:59
1281 查看
本文以实例描述了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>
您可能感兴趣的文章:
相关文章推荐
- ThinkPHP采用<volist>实现三级循环代码实例
- <数据结构> 第二章 线性表之循环链表的代码粗实现
- SQLite学习手册(实例代码<二>)
- List<T>采用delegate快速实现排序、查找等操作
- <Unity 3D工作笔记>脚本中勾选与取消勾选脚本,代码中的实现!
- jquery实现文字由下到上循环滚动的实例代码
- 使用PHP实现密保卡功能实现代码<打包下载直接运行>
- List<> 转换为Dataset的C#代码实现 解决Nullable问题
- <编程之美> 1的数目 c代码实现
- <a> 采用JS 实现FORM提交
- Java NIO原理图文分析及代码实现<转>
- List<T>采用delegate快速实现排序、查找等操作
- Fms3和Flex打造在线多人视频会议和视频聊天(附原代码)<视频聊天,会议开发实例3>
- SQLite学习手册(实例代码<二>)
- Nop-通过IStartupTask实现代码执行<六>
- thinkphp 在循环内使用<php></php>
- List<T>采用delegate快速实现排序、查找等操作
- DIV+CSS+JS实现图片<ul><li></li></ul>无缝滚动代码
- java二维码生成与解析代码实现 <转载自http://blog.csdn.net/about58238/article/details/7494704>