ThinkPHP采用<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>

php技术ThinkPHP采用&amp;lt;volist&amp;gt;实现三级循环代码实例,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。