找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1213|回复: 0
打印 上一主题 下一主题

ThinkPHP采用<volist>实现三级循环代码实例

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 05:56:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文以实例描述了ThinkPHP采用标签实现三级循环代码,具体操作步骤如下:
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']_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.模板部分:

  
  selected >{$vo.alias}  
  
  selected >--{$child.alias}  
   
  selected >---{$grand.alias}  
   
  
  

            
            
您可能感兴趣的文章:
  • Thinkphp中的volist标签用法简介
  • ThinkPHP模板中判断volist循环的最后一条记录的验证方法
  • Thinkphp的volist标签嵌套循环使用教程
  • Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
  • ThinkPHP通过AJAX返回JSON的两种实现方法
  • ThinkPHP中使用ajax接收json数据的方法
  • ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
  • ThinkPHP模板循环输出Volist标签用法实例详解
  • thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端