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

前端技术 2023/08/31 PHP

本文以实例描述了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>

本文地址:https://www.stayed.cn/item/898

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。