Layui table的动态表格lay-data怎么传递参数给后端

6 篇文章 0 订阅
1 篇文章 0 订阅

Layui table的动态表格lay-data怎么传递参数给后端

前端代码:

<table class="layui-table" lay-filter="EditListTable">
    <thead>
        <tr>
            <th lay-data="{type:'checkbox'}">ID</th>
            <th lay-data="{field:'id', width:80, sort: false}">ID</th>
            <th lay-data="{field:'username', width:120, edit: ''}">用户姓名</th>
            <th lay-data="{field:'email', edit: '', width: 150}">邮箱</th>
            <th lay-data="{field:'mobile', edit: '', width: 150}">手机号码</th>
            <th lay-data="{field:'status', edit: '', width: 150}">状态</th>
            <th lay-data="{field:'add_time', edit: '', width: 150}">添加时间</th>
            <th lay-data="{field:'operation', edit: '', width: 250}">操作</th>
        </tr>
    </thead>
</table>

js代码:

<script type="text/javascript">
(function () {
    //加载列表的后端 url
    var getListUrl = '';

    //对于任意一个 table,按照官方的说法,有三种不同的初始化渲染方式,不多介绍,而这里使用的方式姑且看做第三种:转换静态表格 方式
    //转换静态表格方式,自然首先需要有一个已经存在的表格,然后再通过 js 方式转化为 Layui 表格
    //无论哪种方式的 Layui table 初始化自然需要配置项
    //通过转化的方式初始化 Layui table,配置项部分可以在 源table中,部分在js中,源 table 的源代码上文已经给出,下面给出一个示例的 js 中的配置项
    var tableOptions = {
        url: getListUrl, //请求地址
        method: 'POST', //方式
        id: 'test', //生成 Layui table 的标识 id,必须提供,用于后文刷新操作,笔者该处出过问题
        page: true, //是否分页
        where: {type:"all"}, //请求后端接口的条件,该处就是条件错误点,按照官方给出的代码示例,原先写成了 where: { key : { type: "all" } },结果并不是我想的那样,如此写,key 将是后端的一个类作为参数,里面有 type 属性,如果误以为 key 是 Layui 提供的格式,那就大错特错了
        response: { //定义后端 json 格式,详细参见官方文档
            statusName: 'code', //状态字段名称(注意这里是后端返回的字段)
            statusCode: '1', //状态字段成功值(注意这里是后端返回的字段)
            msgName: 'msg', //消息字段(注意这里是后端返回的字段)
            countName: 'count', //总数字段(注意这里是后端返回的字段)
            dataName: 'data' //数据字段(注意这里是后端返回的字段)
        }
    };

    //layui 模块引用,根据需要自行修改
    layui.use(['table', 'layer'], function () {
        var layer = layui.layer, table = layui.table;

        //表初始化
        var createTable = function () {
            table.init('EditListTable', tableOptions);
            // table lay-filter  对应表格的 lay-filter 属性
        };

        //表刷新方法
        var reloadTable = function (item) {
            table.reload("test", { //此处是上文提到的 初始化标识id
                where: {
                    //key: { //该写法上文已经提到
                        type: item.type, id: item.id
                    //}
                }
            });
        };

        //表初始化
        createTable();

        //其他和 tree 相关的方法,其中包括 点击 tree 项调用刷新方法
    });
})();
</script>

注意上面代码注释内容即可。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用 Ajax 和 layui 实现动态表格增删改查的一个简单示例。 1. 引入 layui 首先需要在页面中引入 layui 的相关文件,例如: ```html <link rel="stylesheet" href="//cdn.layui.com/layui-v2.5.6/css/layui.css"> <script src="//cdn.layui.com/layui-v2.5.6/layui.js"></script> ``` 2. 表格的展示 接下来需要将表格展示在页面上,可以使用 layuitable 组件来创建表格。为了方便后续操作,可以给每一行的 tr 标签添加一个唯一的 id,例如: ```html <table id="table" lay-filter="table"></table> ``` ```javascript // 渲染表格 layui.use('table', function () { var table = layui.table; table.render({ elem: '#table', url: 'list.php', cols: [[ {field: 'id', title: 'ID'}, {field: 'name', title: '姓名'}, {field: 'age', title: '年龄'}, {fixed: 'right', title: '操作', toolbar: '#toolbar', width: 150} ]] }); // 监听工具条按钮点击事件 table.on('tool(table)', function (obj) { var data = obj.data; if (obj.event === 'edit') { // 编辑操作 editData(data); } else if (obj.event === 'delete') { // 删除操作 deleteData(data); } }); }); // 显示编辑模态框 function editData(data) { layui.use('layer', function () { var layer = layui.layer; layer.open({ type: 1, title: '编辑数据', area: ['500px', '300px'], content: $('#edit-form'), success: function () { // 将数据填充到编辑表单中 $('#edit-form input[name="id"]').val(data.id); $('#edit-form input[name="name"]').val(data.name); $('#edit-form input[name="age"]').val(data.age); } }); }); } // 删除操作 function deleteData(data) { layui.use('layer', function () { var layer = layui.layer; layer.confirm('确定删除该行数据吗?', function (index) { var url = 'delete.php?id=' + data.id; $.ajax({ type: 'GET', url: url, success: function (response) { layer.close(index); layui.table.reload('table'); }, error: function () { alert('删除数据失败'); } }); }); }); } ``` 3. 添加操作 当用户点击添加按钮时,需要显示一个模态框,让用户输入新数据。可以使用 layuilayer 组件来创建模态框,使用 jQuery 的 ajax() 方法来发送请求,将新数据添加到后端数据库中。例如: ```html <script type="text/html" id="toolbar"> <button class="layui-btn layui-btn-sm" lay-event="add">添加</button> </script> <div id="add-form" style="display: none;"> <form class="layui-form" lay-filter="add-form"> <div class="layui-form-item"> <label class="layui-form-label">姓名</label> <div class="layui-input-block"> <input type="text" name="name" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">年龄</label> <div class="layui-input-block"> <input type="text" name="age" class="layui-input"> </div> </div> </form> </div> <script> // 添加操作 layui.use(['layer', 'form'], function () { var layer = layui.layer; var form = layui.form; layui.table.on('toolbar(table)', function (obj) { if (obj.event === 'add') { layer.open({ type: 1, title: '添加数据', area: ['500px', '300px'], content: $('#add-form'), success: function () { // 清空表单数据 $('#add-form input[name="name"]').val(''); $('#add-form input[name="age"]').val(''); } }); } }); form.on('submit(add-form)', function (data) { $.ajax({ type: 'POST', url: 'add.php', data: data.field, success: function (response) { layer.closeAll(); layui.table.reload('table'); }, error: function () { alert('添加数据失败'); } }); return false; }); }); </script> ``` 4. 编辑操作 当用户点击编辑按钮时,需要将该行的数据加载到编辑模态框中,让用户进行修改。可以使用 layuilayer 组件来创建模态框,使用 jQuery 的 ajax() 方法来发送请求,更新后端数据库中的数据。例如: ```html <div id="edit-form" style="display: none;"> <form class="layui-form" lay-filter="edit-form"> <div class="

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值