jquery datatable服务端分页

jQuery Datatable是一个基于jQuery的插件,它是一种表格控件,提供了丰富的功能,例如:分页、排序、搜索、过滤、分组、导出等。jquery datatable服务端分页就是将数据从服务端获取,分页显示在前端,而不是将所有数据一次性显示在前端,以提高数据处理效率。下面是jquery datatable服务端分页的完整攻略:

步骤一:引入jQuery库和jQuery Datatable库

在html文件的头部引入jQuery和jQuery Datatable的库文件,示例如下:

<!-- 引入jQuery库 -->
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

<!-- 引入jQuery Datatable库 -->
<link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/datatables/1.10.16/css/dataTables.bootstrap.min.css"/>
<script type="text/javascript" src="https://cdn.bootcss.com/datatables/1.10.16/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/datatables/1.10.16/js/dataTables.bootstrap.min.js"></script>

步骤二:在前端页面定义一个表格

在html文件中,创建一个table标签,其中thead标签定义表头,tbody标签定义表体,示例如下:

<table id="example" class="table table-striped table-bordered" style="width:100%">
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>城市</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

步骤三:在服务端编写数据接口

服务端编写一个数据接口,用于返回分页数据的JSON格式,例如php代码如下:

<?php
header("Content-Type: application/json;charset=utf-8");

// 当前页码
$start = $_REQUEST["start"];

// 每页显示的条数
$length = $_REQUEST["length"];

// 排序列的索引值
$column = $_REQUEST["order"][0]["column"];

// 排序方式 ASC或DESC
$dir = $_REQUEST["order"][0]["dir"];

// 查询记录总数
$total = 100;

// 构造分页SQL语句,例如:
// SELECT * FROM table LIMIT $start, $length ORDER BY column $dir
$data = array();
for ($i = $start; $i < ($start + $length); $i++) {
    $data[] = array(
        "id" => $i + 1,
        "name" => "张三" . $i,
        "age" => "20" . $i,
        "gender" => "男",
        "city" => "北京"
    );
}

// 将数据转换成json格式输出
echo json_encode(array(
    "draw" => isset($_REQUEST["draw"]) ? intval($_REQUEST["draw"]) : 1,
    "recordsTotal" => $total,
    "recordsFiltered" => $total,
    "data" => $data
));
?>

步骤四:在前端页面中初始化datatable

在html文件中,编写JavaScript代码,通过ajax异步请求服务端分页数据,并初始化datatable,示例如下:

$(document).ready(function () {
    $('#example').DataTable({
        "processing": true, // 显示处理中动画
        "serverSide": true, // 开启服务器模式
        "ajax": {
            "url": "data.php", // 数据接口
            "dataType": "json", // 返回的数据类型
            "type": "POST", // 请求方式
            "data": function (d) {
                d.start = d.start;
                d.length = d.length;
                d.order = [{
                    "column": d.order[0].column,
                    "dir": d.order[0].dir
                }];
            },
            "error": function (xhr, error, thrown) { // 请求失败时调用
                alert("请求失败,请稍后再试!");
            }
        },
        "columns": [ // 定义每列数据对应返回数据中的名称
            {"data": "id"},
            {"data": "name"},
            {"data": "age"},
            {"data": "gender"},
            {"data": "city"}
        ]
    });
});

示例一:带搜索框的服务端分页

在html文件中添加一个搜索框,当输入关键字并点击搜索按钮时,通过ajax异步请求服务端分页数据,并重新加载datatable数据,示例如下:

<div class="row">
    <div class="col-sm-6">
        <div id="example_filter" class="dataTables_filter">
            <label>Search:
                <input type="text" class="form-control input-sm" placeholder="" aria-controls="example">
            </label>
            <button type="button" class="btn btn-primary" onclick="search()">搜索</button>
        </div>
    </div>
</div>
function search() {
    var keyword = $("#example_filter input").val(); // 获取搜索框中的关键字
    var datatable = $("#example").DataTable(); // 获取datatable对象
    datatable.search(keyword).draw(); // 设置搜索关键字,并重新加载数据
}

示例二:带分页按钮的服务端分页

在html文件中添加一个分页按钮组件,当点击不同的按钮时,通过ajax异步请求服务端分页数据,并重新加载datatable数据,示例如下:

<div class="row">
    <div class="col-sm-12">
        <ul id="example_paginate" class="pagination pull-right"></ul>
    </div>
</div>
function get(page) {
    var datatable = $("#example").DataTable(); // 获取datatable对象
    datatable.page(page).draw(false); // 点击分页按钮,切换当前页码
}

$(document).ready(function () {
    var total = 100;
    var pages = Math.ceil(total / 10);
    var html = "";
    for (var i = 0; i < pages; i++) {
        html += '<li class="paginate_button ' + (i == 0 ? 'active' : '') + '"><a href="javascript:get(' + i + ')">' + (i + 1) + '</a></li>';
    }
    $("#example_paginate").html(html); // 动态生成分页按钮组件
});

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery datatable服务端分页 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 锐龙5 3600和酷睿i5-9600KF怎么选 锐龙5 3600和酷睿i5-9600KF对比介绍

    当选择锐龙5 3600和酷睿i5-9600KF之间的处理器时,可以考虑以下几个方面进行对比和评估: 性能对比 首先,我们可以比较它们的性能指标,包括核心数量、线程数量和主频。锐龙5 3600拥有6个核心、12个线程和3.6GHz的基础主频,而酷睿i5-9600KF则有6个核心、6个线程和3.7GHz的基础主频。从核心和线程数量上看,锐龙5 3600具有更多的…

    other 2023年10月17日
    00
  • Android HorizontalScrollView左右滑动效果

    Android HorizontalScrollView左右滑动效果攻略 介绍 HorizontalScrollView 是 Android 中的一个视图容器,它允许用户在水平方向上滚动其子视图。在本攻略中,我们将详细讲解如何实现 Android 中的水平滑动效果。 步骤 步骤 1: 创建布局文件 首先,我们需要创建一个布局文件来放置 HorizontalS…

    other 2023年8月26日
    00
  • 浅谈Vue2.0父子组件间事件派发机制

    浅谈Vue2.0父子组件间事件派发机制 父子组件通信 在Vue中,父子组件通过props和$emit的方式进行通信。props是从父组件向子组件传递数据的方式,而$emit则是从子组件向父组件传递事件的方式。 父组件通过props向子组件传递值: <template> <div> <ChildComponent :value=&…

    other 2023年6月27日
    00
  • DedeCms V5.6漏洞 变量未初始化 导致鸡助漏洞

    DedeCms V5.6是一款广泛使用的CMS系统,但该系统在变量未被正确初始化的情况下存在漏洞,攻击者可以通过利用该漏洞成功实施鸡助攻击。以下是攻击步骤: 攻击者首先需要获取DedeCms V5.6的登录页面,并且需要知道账号和密码才能登录系统; 然后攻击者需要构造恶意请求,通过向upload_picture.php文件中的path参数追加../路径,使得…

    other 2023年6月20日
    00
  • react获取url参数的方法

    以下是React获取URL参数的完整攻略,包括步骤、示例和注意事项: React获取URL参数的方法攻略 在React中,我们可以使用JavaScript来获取URL参数以下是详细的攻略: 步骤 以下是获取URL参数的步骤: 获取URL。 在React中,我们可以使用window.location.href获取当前页面的URL。 解析URL参数。 在获取UR…

    other 2023年5月7日
    00
  • java浏览器控件jxbrowser(简单demo模拟自动登录与点击)

    Java浏览器控件JxBrowser:简单Demo模拟自动登录与点击 JxBrowser是一款基于Java的浏览器控件,它允许Java开发人员在自己的Java应用程序中嵌入一个真正的浏览器页面。JxBrowser包含了Chrome浏览器内核,提供了与浏览器相同的功能和性能。本文将介绍如何使用JxBrowser构建简单的Demo,以模拟自动登录与点击。 准备工…

    其他 2023年3月29日
    00
  • 网络ip地址设置教程分享

    网络IP地址设置教程分享 在本教程中,我将向您详细介绍如何设置网络IP地址。IP地址是用于在网络上唯一标识设备的一组数字。通过正确设置IP地址,您可以确保设备能够与其他设备进行通信,并访问互联网。 步骤1:了解IP地址的基本知识 在开始设置IP地址之前,让我们先了解一些基本概念: IPv4和IPv6:目前有两个主要的IP地址版本,IPv4和IPv6。IPv4…

    other 2023年7月29日
    00
  • 扩圈app如何查看版本号?扩圈查看版本号方法

    要查看扩圈App的版本号,可以按照以下步骤进行操作: 打开扩圈App:在手机上找到并点击扩圈App的图标,以打开应用程序。 导航到设置页面:一旦你打开了扩圈App,你会看到一个主界面。在主界面上,通常会有一个菜单按钮或者一个设置图标,点击它以进入设置页面。 查找关于页面:在设置页面中,你需要寻找一个关于或者版本信息的选项。这通常在设置页面的底部或者顶部,具体…

    other 2023年8月2日
    00
合作推广
合作推广
分享本页
返回顶部