datatable.js实现异步加载与增删改查

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

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、付费专栏及课程。

余额充值