在这里我是用TP框架写得,当然不用TP写,改一下代码就可以了,自己可以加css样式
在控制器里写
public function index(){
//初始化数据模型
$Menu = M('Menu');
$data = $Menu->select();
$list = $this->menus($data,0);
//渲染模板
$this->assign('list',$list);
$this->display();
}
public function menus($data=array(),$pid=0){
$str = '';
foreach($data as $k=>$v){
//$str .= $v['name'];
if($pid == $v['pid']){
$str .= '<li class="menu">';
$str .= '<a href="###" class="parent">'.$v['name'].'</a>';
$str .= '<ul>'.$this->menus($data,$v['id']).'</ul>';
$str .= '</li>';
}
}
return $str;
}
html输出
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="__JS__/jquery.js"></script>
<style>
a{text-decoration: none;color:#000000;}
.menu ul{ display:none}
</style>
<script type="text/javascript">
$(function(){
$('.parent').click(function(){
$(this).parent('li').children('ul').stop().slideToggle('linear');
});
});
</script>
</head>
<body>
<h1>无限循环可折叠菜单</h1>
<ul>
{$list}
</ul>
</body>
</html>