当前位置:首页 > CMS教程 > Thinkphp > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-03-21 14:21:05 浏览: 评论:0 

这篇文章主要介绍了ThinkPHP采用<volist>实现三级循环代码实例,通过实例加深读者对<volist>标签用法的认识,需要的朋友可以参考下

本文以实例描述了ThinkPHP采用<volist>标签实现三级循环代码,具体操作步骤如下:

1. 三级循环需要三维数组,实现代码如下:

  1. function MakeTree($pid,$level) {  
  2.  $map['pid'] = $pid;  
  3. $map['level'] = $level;  
  4. $result = $this->where($map)->order('rank ASC')->findall();  
  5. if($result){  
  6.  foreach ($result as $key => $value){  
  7.  $title = $value['alias'];  
  8.  $list[$title]['id'] = $value['id'];  
  9.  $list[$title]['pid'] = $value['pid'];  
  10.  $list[$title]['alias']= $value['alias'];  
  11.  $list[$title]['title'] = $value['title'];  
  12.  $list[$title]['level'] = $value['level'];  
  13.  $list[$title]['state'] = $value['state'];  
  14.  $list[$title]['rank'] = $value['rank'];  
  15.  if($value['level']<=3){  
  16.   $list[$title]['child'] = $this->_MakeSonTree($value['id']); 
  17.  }  
  18.  }  
  19. }  
  20. return $list;  
  21. }  
  22.  
  23. function _MakeSonTree($pid) {  
  24. $map['pid'] = $pid;  
  25. $result = $this->where($map)->order('rank ASC')->findall();  
  26. if($result){  
  27.  foreach ($result as $key => $value){  
  28.  $title = $value['alias'];  
  29.  $list[$title]['id']= $value['id'];  
  30.  $list[$title]['pid']= $value['pid'];  
  31.  $list[$title]['alias']= $value['alias'];  
  32.  $list[$title]['title'] = $value['title'];  
  33.  $list[$title]['level'] = $value['level'];  
  34.  $list[$title]['state'] = $value['state'];  
  35.  $list[$title]['rank'] = $value['rank'];  
  36.   if($this->haschild($value['id'])){  //先判断是否有第三级子类,最后的数组形如$result['child']['grandchild'];  
  37.   $list[$title]['grandchild']=$this->_MakeSonTree($value['id']);  
  38.   }  
  39.  }  
  40. }  
  41. return $list;  
  42.  }  
  43.  
  44. function haschild($id){  
  45. $result=D('LearningChannel')->where("pid=".$id)->find();  
  46. if($result){  
  47.  return true;  
  48.  }  
  49.  else return false;  

2.绑定volist标签:

  1. $result=D('Learning') ->MakeTree(0,1);  
  2. //dump($result); 
  3. $this->assign('list',$result); 

3.模板部分:

  1. <select name="category" id="select" class="text mr5">  
  2.  <volist name="list" id="vo">  
  3.   <option name="cid" value="{$vo.id}" <eq name="vo.id" value="getid">selected</eq> >{$vo.alias}</option>   
  4.  <volist name="vo['child']" id="child">  
  5.   <option name="cid" value="{$child.id}" <eq name="child.id" value="getid">selected</eq> >--{$child.alias}</option>   
  6.   <volist name="child['grandchild']" id="grand">  
  7.   <option name="cid" value="{$grand.id}" <eq name="grand.id" value="getid">selected</eq> >---{$grand.alias}</option>   
  8.   </volist>  
  9.  </volist>  
  10.  </volist>  
  11.  </select> 

Tags: volist ThinkPHP三级循环

分享到: