本文以实例描述了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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我