ThinkPHP采用<volist>实现三级循环代码实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-03-21 14:21:05 浏览: 评论:0
这篇文章主要介绍了ThinkPHP采用<volist>实现三级循环代码实例,通过实例加深读者对<volist>标签用法的认识,需要的朋友可以参考下
本文以实例描述了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>
Tags: volist ThinkPHP三级循环
相关文章
- ·Thinkphp中的volist标签用法简介(2021-02-21)
- ·ThinkPHP模板中判断volist循环的最后一条记录的验证方法(2021-03-07)
- ·Thinkphp的volist标签嵌套循环使用教程(2021-03-17)
- ·Thinkphp中volist标签mod控制一定记录的换行BUG解决方法(2021-04-23)
- ·ThinkPHP模板Volist标签嵌套循环输出多维数组的方法(2021-07-21)
- ·ThinkPHP模板循环输出Volist标签用法实例详解(2021-07-21)
- ·thinkphp 中的volist标签在ajax操作中的特殊性(推荐)(2021-08-30)
- ·详解thinkphp中的volist标签(2021-08-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)