zTree实现动态菜单
时间: 2024-01-06 19:04:06 浏览: 93
zTree可以通过异步加载数据来实现动态菜单。具体步骤如下:
1. 初始化zTree时,设置异步加载参数,包括异步请求的URL、请求方法、请求参数等。
2. 当需要加载动态数据时,调用zTree的异步加载方法,传入请求参数。
3. 服务器接收到请求参数后,根据参数查询数据库或其他数据源,生成对应的数据,并返回给前端。
4. 前端接收到响应数据后,将数据转换成zTree所需的JSON格式,并调用zTree的更新节点数据方法,将数据更新到zTree中即可。
示例代码如下:
```
// 初始化zTree
var setting = {
async: {
enable: true, // 开启异步加载
url: "dynamicMenu.php", // 异步请求的URL
type: "POST", // 请求方法
autoParam: ["id"], // 请求参数
dataType: "json" // 响应数据类型
}
};
var zTreeObj = $.fn.zTree.init($("#tree"), setting);
// 加载动态数据
zTreeObj.reAsyncChildNodes(null, "refresh");
```
服务器端代码示例(PHP):
```
// 获取请求参数
$id = isset($_POST['id']) ? intval($_POST['id']) : 0;
// 查询数据库获取节点数据
$nodes = array();
if ($id == 0) {
// 查询根节点
$nodes[] = array(
'id' => 1,
'name' => '根节点',
'isParent' => true
);
} else {
// 查询子节点
$result = mysql_query("SELECT * FROM menu WHERE parent_id=$id");
while ($row = mysql_fetch_array($result)) {
$nodes[] = array(
'id' => $row['id'],
'name' => $row['name'],
'isParent' => $row['has_child'] == 1
);
}
}
// 返回响应数据
echo json_encode($nodes);
```
阅读全文