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

news/2024/7/11 0:08:05 标签: ajax, jquery, javascript, datatables
给大家分享一下我在项目中用datatables实现ajax加载数据与增删改查
注意,需要引入jquerydatatables、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代码:

javascript">///
    //点击查找
    $("#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();
        }
    });



http://www.niftyadmin.cn/n/1869992.html

相关文章

程序人生--一个程序员对学弟学妹建议

原文地址&#xff1a;http://kb.cnblogs.com/page/42108/ 我始终认为&#xff0c;对一个初学者来说&#xff0c;IT界的技术风潮是不可追赶。我时常看见自己的DDMM们把课本扔了&#xff0c;去买些价格不菲的诸如C#, VB.Net 这样的大部头&#xff0c;这让我感到非常痛心。而许多搞…

JQuery Datatables Columns API 参数详细说明

Data Tables: http://datatables.net/ Version: 1.10.0 Columns说明 虽然我们可以通过DOM直接获取DataTables元素的信息&#xff0c;但是DataTables提供了更方便的方法&#xff0c;可以自定义列的属性。下边就让我们一起来学习DataTables是怎么来定义列属性的。 DataTables提供…

Datatables | 升级 | 1.10.x与1.9.x参数名对照表

1.10.x与1.9.x参数名对照表 Datatables 1.10.x在命名上与1.9.x的有区别&#xff0c;新版的使用的是驼峰的命名规则&#xff0c;而之前的是采用匈牙利命名规则 当然&#xff0c;这些变化都是向下兼容的&#xff0c;你可以继续使用旧版本的api方法的参数和名称。 如果你要是用新…

jquery.form.js的ajaxSubmit和ajaxForm使用

依赖的脚本文件 1 <script src"../Javascript/jquery-1.11.1.min.js" type"text/javascript"></script> 2 <script src"../Javascript/jquery.form.js" type"text/javascript"></script> ajaxSubmit…

什么是图灵机

图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程&#xff0c;他把这样的过程看作下列两种简单的动作&#xff1a;在纸上写上或擦除某个符号&#xff1b;把注意力从纸的一个位置移动到另一个位置&#xff1b;而在每个阶段&#xff0c;人要决定下一步的动作&#xff0…

表单验证——JqueryValidator、BootstrapValidator

表单验证两种方式&#xff1a; 1、JqueryValidator <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>JqueryValidator实战——用户注册</title><script src"http://static.runoob.com/a…

为什么匿名内部类和局部内部类只能访问final变量

转:http://feiyeguohai.iteye.com/blog/1500108 为什么匿名内部类参数必须为final类型 1) 从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地…

再谈Jquery Ajax方法传递到action

之前写过一篇文章 Jquery Ajax方法传值到action&#xff0c;本文是对该文的补充。 假设 controller中的方法是如下&#xff1a; public ActionResult ReadPerson(PersonModel model) { string s model.ToString(); return Content(s); …