pear admin layui创建动态菜单
时间: 2023-08-06 21:06:43 浏览: 285
要创建动态菜单,你需要做以下几个步骤:
1.在数据库中创建菜单表,包括菜单名称、菜单链接、父级菜单ID等字段。
2.在后台管理系统中创建一个页面,用于管理菜单的增删改查操作。
3.使用Layui的Tree组件来展示菜单,同时通过Ajax请求获取动态数据,并将菜单数据转换为树形结构。
4.在页面加载时,通过Ajax请求获取菜单数据,并通过Layui的菜单组件来展示菜单。
5.为菜单项绑定点击事件,在点击菜单项时,通过Ajax请求获取对应的页面内容,并将内容展示在页面中。
下面是一个简单的示例代码,供参考:
HTML代码:
```
<div class="layui-collapse">
<ul class="layui-nav layui-nav-tree layui-nav-side" lay-filter="test">
<li class="layui-nav-item layui-nav-itemed">
<a href="javascript:;">菜单</a>
<dl class="layui-nav-child">
<dd><a href="javascript:;">动态菜单</a></dd>
</dl>
</li>
</ul>
</div>
```
JavaScript代码:
```
layui.use(['element', 'jquery'], function(){
var element = layui.element;
var $ = layui.jquery;
// 菜单项点击事件
$('ul.layui-nav-child').on('click', 'dd', function(){
var url = $(this).attr('href');
// Ajax请求获取对应的页面内容,并将内容展示在页面中
$.get(url, function(data){
$('#content').html(data);
});
return false;
});
// 动态加载菜单
$.get('/menu/list', function(data){
var menuData = [];
// 将菜单数据转换为树形结构
for(var i = 0; i < data.length; i++){
var menu = {
title: data[i].name,
href: data[i].url
};
if(data[i].parentId == 0){
menuData.push(menu);
}else{
for(var j = 0; j < menuData.length; j++){
if(menuData[j].id == data[i].parentId){
if(!menuData[j].children){
menuData[j].children = [];
}
menuData[j].children.push(menu);
}
}
}
}
// 使用Layui的Tree组件来展示菜单
element.render('nav', 'test', menuData);
});
});
```
在这个示例中,我们使用了Layui的Collapse、Nav和Tree组件来实现动态菜单的创建。其中,Collapse用来创建左侧导航栏,Nav用来创建顶部菜单栏,Tree用来创建动态菜单。同时,我们还使用了Ajax来获取动态数据,并将菜单数据转换为树形结构。
阅读全文