datatables实现异步加载与增删改查

给大家分享一下我在项目中用datatables实现ajax加载数据与增删改查
注意,需要引入jquery、datatables、layer

html代码:

<div class="thead">
    <input placeholder="请输入搜索内容" id="searchTitle" type="text"/>
    <button id="search" class="layui-btn layui-btn-small layui-btn-primary"><i class="layui-icon"></i> 搜索</button>
    <button id="add" class="layui-btn layui-btn-small layui-btn-primary"><i class="layui-icon"></i> 新增</button>
    <button id="change" class="layui-btn layui-btn-small layui-btn-primary"><i class="layui-icon"></i> 编辑</button>
    <button id="del" class="layui-btn layui-btn-small layui-btn-primary"><i class="layui-icon"></i> 删除</button>
</div>
<table id="table" class="display" cellspacing="0" width="100%">
    <thead>
    <tr>
        <th>职业</th>
        <th>姓名</th>
        <th>性别</th>
        <th>爱好</th>
    </tr>
    </thead>
</table>

js代码:

///
    //点击查找
    $("#search").click(function () {
        table.ajax.reload();
    });
    //初始化datatables
    var table = $('#example').DataTable({
        "searching": false,
        "serverSide": true,
        "bProcessing": true,
        "bPaginate": true, //翻页功能
        "bLengthChange": true, //改变每页显示数据数量
        "bFilter": true, //过滤功能
        "bSort": false, //排序功能
        "sPaginationType": "full_numbers",
        "fnServerData": function (sSource, aoData, fnCallback) {
            var json = {
                "page": {
                    "start": aoData[3].value,
                    "length": aoData[4].value,
                },
                "search": {
                    "xb": $("#searchTitle").val()
                }
            };
            $.ajax({
                "dataType": 'json',
                "type": "POST",
                "url": server + "user/queryUser.do",
                "contentType": "application/json; charset=utf-8",
                "data": JSON.stringify(json),
                "success": function (data) {
                    data.recordsTotal = data.page.recordsTotal;
                    data.recordsFiltered = data.page.recordsTotal;
                    fnCallback(data);
                }
            });
        },
        "oLanguage": {
            "sLengthMenu": "每页显示 _MENU_ 条记录",
            "sZeroRecords": "抱歉, 没有找到",
            "sInfoEmpty": "没有数据",
            "sInfoFiltered": "(从 _MAX_ 条数据中检索)",
            "oPaginate": {
                "sFirst": "首页",
                "sPrevious": "前一页",
                "sNext": "后一页",
                "sLast": "尾页"
            },
            "sZeroRecords": "没有检索到数据",
        },
        "aoColumns": [
            {"data": "zy"},
            {"data": "xm"},
            {"data": "xb"},
            {"data": "fov"}
        ]
    });
    ///
    //增加
    $("#add").click(function () {
        layer.open({
            type: 1,
            skin: 'layui-layer-rim', //加上边框
            area: ['420px', '240px'], //宽高
            btn: ['确定'],
            yes: function (index, layero) {
                var json = {
                    "zy": $("#zhiy").val(),
                    "xm": $("#name").val(),
                    "xb": $("#sex").val(),
                    "fov_ck": $("#aihao").val()
                };
                $.ajax({
                    type: "POST",
                    url: server + "user/addUser.do",
                    contentType: "application/json; charset=utf-8",
                    data: JSON.stringify(json),
                    dataType: "json",
                    success: function (data) {
                        if (data.success == true) {
                            layer.msg(data.msg);
                        } else if (data.success == false) {
                            layer.msg(data.msg);
                        }
                    }
                });
                layer.close(index);
                table.ajax.reload();
            },
            content: '职业:' + '<input type="text" name="" id="zhiy" value=""/>' + '<br>姓名:'
            + '<input type="text" name="" id="name" value=""/>' + '<br>性别:'
            + '<input type="text" name="" id="sex" value=""/>' + '<br>爱好:'
            + '<input type="text" name="" id="aihao" value=""/>'
        });
    });
    //选中一行触发
    $('#example tbody').on('click', 'tr', function () {
        if ($(this).hasClass('selected')) {
            $(this).removeClass('selected');
            adatid = "";
        }
        else {
            table.$('tr.selected').removeClass('selected');
            $(this).addClass('selected');
            adatid = table.row(this).data().guid;
            adata = table.row(this).data().zy;
            bdata = table.row(this).data().xm;
            cdata = table.row(this).data().xb;
            ddata = table.row(this).data().fov;
        }
    });
    //修改
    $("#change").click(function () {
        if (adatid === '') {
            alert("请选中要修改的数据");
        } else {
            layer.open({
                type: 1,
                skin: 'layui-layer-rim', //加上边框
                area: ['420px', '240px'], //宽高
                btn: ['确定'],
                yes: function (index, layero) {
                    var json = {
                        "guid": adatid,
                        "zy": $("#cid").val(),
                        "xm": $("#cname").val(),
                        "xb": $("#csex").val(),
                        "fov_ck": $("#cage").val()
                    };
                    $.ajax({
                        type: "POST",
                        url: server + "user/updateUser.do",
                        contentType: "application/json; charset=utf-8",
                        data: JSON.stringify(json),
                        dataType: "json",
                        success: function (data) {
                            if (data.success == true) {
                                layer.msg(data.msg);
                            } else if (data.success == false) {
                                layer.msg(data.msg);
                            }
                        }
                    });
                    layer.close(index);
                    table.ajax.reload();
                },
                content: '职业:' + '<input type="text" name="" id="cid"/>' + '<br>姓名:'
                + '<input type="text" name="" id="cname"/>' + '<br>性别:'
                + '<input type="text" name="" id="csex"/>' + '<br>爱好:'
                + '<input type="text" name="" id="cage"/>'
            });
        }
        $("#cid").val(adata);
        $("#cname").val(bdata);
        $("#csex").val(cdata);
        $("#cage").val(ddata);
    });
    //删除
    $("#del").click(function () {
        if (adatid === '') {
            alert("请删除要修改的数据");
        } else {
            var json = {
                "guid": adatid
            };
            $.ajax({
                type: "POST",
                url: server + "user/deleteUser.do",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(json),
                dataType: "json",
                success: function (data) {
                    if (data.success == true) {
                        layer.msg(data.msg);
                    } else if (data.success == false) {
                        layer.msg(data.msg);
                    }
                }
            });
            table.ajax.reload();
        }
    });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值