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 相关文章推荐
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
jQuery中map函数的两种方式
Apr 07 jQuery
利用jQuery解析获取JSON数据
Apr 08 jQuery
jQuery手风琴的简单制作
May 12 jQuery
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
jQuery滑动效果实现方法分析
Sep 05 jQuery
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
jQuery HTML css()方法与css类实例详解
May 20 jQuery
js和jquery判断数据类型的4种方法总结
Aug 28 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 VS ASP
2006/10/09 PHP
php中大括号作用介绍
2012/03/22 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
python网络爬虫采集联想词示例
2014/02/11 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
美工的岗位职责
2013/11/14 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
房地产促销活动方案
2014/03/01 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
会计求职自荐信
2015/03/26 职场文书
摩登时代观后感
2015/06/03 职场文书
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python