layui中表单提交后重新渲染table表格
时间: 2023-08-08 20:13:27 浏览: 145
在Layui中,可以通过以下步骤实现表单提交后重新渲染table表格:
1. 监听表单的提交事件,获取表单数据;
2. 发送 Ajax 请求,将表单数据提交给后端进行处理;
3. 在 Ajax 请求的回调函数中,根据后端返回的数据,重新渲染 table 表格。
以下是示例代码:
```javascript
// 监听表单提交事件
form.on('submit(submitBtn)', function(data){
// 发送 Ajax 请求
$.ajax({
type: 'POST',
url: 'submit.php',
data: data.field,
success: function(res){
// 重新渲染 table 表格
table.reload('testTable');
layer.msg('提交成功');
},
error: function(){
layer.msg('提交失败');
}
});
return false;
});
```
其中,`submitBtn` 是表单提交按钮的 lay-filter 值,`submit.php` 是后端接口地址,`testTable` 是 table 表格的 id。在 Ajax 请求成功后,我们调用 `table.reload()` 方法重新渲染表格。
相关问题
layui 表单提交之后渲染表格
layui表单提交之后渲染表格的方法如下:
1. 在表单提交的回调函数中重新渲染表格
2. 在表单提交的回调函数中重新请求表格数据并重新渲染表格
示例代码:
```
//表单提交回调函数
form.on('submit(formDemo)', function(data){
$.ajax({
type: "post",
url: "test.php",
data: data.field,
dataType: "json",
success: function (res) {
//更新表格数据
table.reload('test', {
data: res.data
});
}
});
return false;
});
```
需要注意的是 表格需要先做渲染,并且渲染的表格有对应的ID, 这里上面的示例里使用的是 'test'
layui table表格ajax
以下是使用 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()` 方法更新表格数据,并关闭弹窗。
阅读全文