layui table表格ajax
时间: 2023-06-25 16:05:52 浏览: 123
以下是使用 Ajax 加载数据并渲染到 layui 表格的示例代码:
HTML 代码:
```html
<table id="myTable" lay-filter="myTable"></table>
```
JavaScript 代码:
```javascript
layui.use(['table', 'jquery'], function(){
var table = layui.table;
var $ = layui.jquery;
table.render({
elem: '#myTable',
url: '/api/getData',
cols: [[
{field: 'id', title: 'ID'},
{field: 'name', title: '姓名'},
{field: 'age', title: '年龄'}
]]
});
// 监听表格工具栏
table.on('toolbar(myTable)', function(obj){
if(obj.event === 'reload'){
// 刷新表格
table.reload('myTable');
}
});
// 监听表格排序
table.on('sort(myTable)', function(obj){
console.log(obj.field); // 当前排序的字段名
console.log(obj.type); // 当前排序类型:desc(降序)、asc(升序)、null(空对象,默认排序)
// 重新渲染表格
table.reload('myTable', {
initSort: obj, // 指定初始排序字段和排序类型
where: {
// 传递额外参数
sortField: obj.field,
sortOrder: obj.type
}
});
});
// 监听表格行双击事件
table.on('rowDouble(myTable)', function(obj){
console.log(obj.data); // 当前行的数据
console.log(obj.tr); // 当前行的 DOM 对象
// 弹出编辑框
layer.open({
type: 1,
title: '编辑',
content: '<form><input type="text" name="name" value="'+ obj.data.name +'" lay-verify="required|name"></form>',
btn: ['保存', '取消'],
yes: function(index, layero){
// 提交表单
$.ajax({
url: '/api/updateData',
type: 'POST',
data: {
id: obj.data.id,
name: $('input[name="name"]').val()
},
success: function(res){
if(res.code === 0){
// 更新表格数据
obj.update({
name: $('input[name="name"]').val()
});
// 关闭弹窗
layer.close(index);
}else{
layer.msg('保存失败');
}
},
error: function(){
layer.msg('保存失败');
}
});
}
});
});
});
```
上述代码中,通过 `table.render()` 方法初始化表格,并设置 `url` 属性为 Ajax 接口地址,`cols` 属性为表头列信息。在监听表格工具栏、排序和行双击事件时,通过 `table.reload()` 方法重新渲染表格,并通过 `where` 属性传递额外参数。在行双击事件中,弹出编辑框,并通过 Ajax 提交数据更新后,使用 `obj.update()` 方法更新表格数据,并关闭弹窗。
阅读全文