jQuery+datatables插件实现ajax加载数据与增删改查功能示例


Posted in jQuery onApril 17, 2018

本文实例讲述了jQuery+datatables插件实现ajax加载数据与增删改查功能。分享给大家供大家参考,具体如下:

这里给大家分享一下我在项目中用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();
    }
});

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
jQuery常用选择器详解
Jul 17 jQuery
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
jquery学习笔记之无new构建详解
Dec 07 jQuery
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
20个最常见的jQuery面试问题及答案
May 23 jQuery
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
jQuery实现计算器功能
Oct 19 jQuery
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 #jQuery
jQuery简单判断值是否存在于数组中的方法示例
Apr 17 #jQuery
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 #jQuery
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
Apr 12 #jQuery
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 #jQuery
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 #jQuery
jQuery中复合选择器简单用法示例
Mar 31 #jQuery
You might like
PHP实现的功能是显示8条基色色带
2006/10/09 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
Python实现完整的事务操作示例
2017/06/20 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
详解python中init方法和随机数方法
2019/03/13 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
py-charm延长试用期限实例
2019/12/22 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
大学自主招生推荐信
2014/05/10 职场文书
公关活动策划方案
2014/05/25 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
四风自我剖析材料
2014/09/30 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书