jquery datatable服务端分页

yizhihongxing

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日

相关文章

  • 关于连接共享打印机要输入用户名和密码的解决办法

    标题: 关于连接共享打印机要输入用户名和密码的解决办法 问题描述 当我们想要连接另一个电脑共享的打印机时,常常会发现需要输入对方电脑的用户名和密码,才能够成功连接打印机。然而,对于一些不太熟悉计算机或是新手来说,这可能会带来不少麻烦,让使用电脑的效率变得更低。因此,解决这个问题是非常必要的。 解决方案 其实这个问题的根本原因在于,连接共享打印机需要认证对方电…

    other 2023年6月27日
    00
  • 死亡岛2游戏没有人物声音怎么办 人物没有声音解决方法

    如果在玩死亡岛2时没有人物声音,那么可能会影响游戏的体验。以下是可能导致这种问题的原因以及相应的解决方法。 原因分析 游戏设置问题:首先,需要检查游戏的音频设置,确保音频输出选项正确。如果设置了不正确的音频输出选项,在游戏中就不能听到任何声音。 驱动程序问题:另一个可能导致没有人物声音的原因是音频驱动程序出现了问题,这可能是由于过时的或不兼容的驱动程序导致的…

    other 2023年6月27日
    00
  • 用vbs将名称转换为正确的大小写的代码

    用VBS将名称转换为正确的大小写的代码攻略 以下是一个使用VBS脚本将名称转换为正确大小写的代码的攻略。这个脚本可以帮助你将一个字符串的大小写转换为正确的形式。 步骤1:创建VBS脚本文件 首先,你需要创建一个新的文本文件,并将其保存为.vbs文件扩展名。你可以使用任何文本编辑器来创建这个文件。 步骤2:编写VBS脚本代码 在创建的VBS脚本文件中,输入以下…

    other 2023年8月17日
    00
  • starccm+11.02安装

    STAR-CCM+ 11.02 安装教程 STAR-CCM+是一款专业的CFD软件,其版本升级比较频繁,这里讲解下星盘CCM+ 11.02的安装。 硬件要求 在安装STAR-CCM+之前,您需要确保系统符合最低硬件要求。- 操作系统:Windows 7/8/10 64位- CPU:双核,2.26 GHz- 内存:2GB以上- 硬盘:至少10GB可用空间- 显…

    其他 2023年3月28日
    00
  • php生成curl命令行的方法

    生成curl命令行是一个非常常见的需求,在PHP中可以通过cURL扩展来实现。下面是 PHP 生成curl命令行的方法的完整攻略。 步骤一:安装cURL扩展 在PHP中使用cURL扩展需要先安装。可以通过在服务器端运行以下命令来获取最新版的cURL和php-curl扩展: $ sudo apt-get install curl libcurl3 libcur…

    other 2023年6月26日
    00
  • 网页禁用右键复制怎么办?破解禁用右键复制网站方法

    作为网站作者,禁用右键复制是一种保护网站内容的措施。不过,有些用户可能想复制其中的内容用于其他用途。在这种情况下,有一些方法可以绕过禁用右键复制的限制。 方法一:使用快捷键 禁用右键复制并不会影响常规的复制快捷键,如Ctrl+C(Windows系统)或Command+C(MacOS系统)。如果你需要复制网页上的内容,可以使用这些快捷键进行复制。这种方式是最简…

    other 2023年6月27日
    00
  • 魔兽世界怀旧服黑翼之巢盗贼需要什么装备 BWL盗贼拿装优先级分析

    魔兽世界怀旧服黑翼之巢盗贼需要什么装备 在魔兽世界怀旧服中,盗贼是一个非常重要的职业,尤其是在黑翼之巢中。作为一个盗贼,在黑翼之巢中需要拥有哪些装备呢?接下来,我们将对此进行分析。 1. 穿透力 首先,在黑翼之巢中,所有的BOSS都有护甲值,而盗贼的穿透力可以减少BOSS的护甲值,提高输出效率。因此,盗贼必须要拥有一定的穿透力装备。 其中,以猫鼬之斧、尖刺项…

    other 2023年6月27日
    00
  • PS打不开提示不能初始化因为首选项是无效的该怎么处理?

    当我们在使用Photoshop软件时,经常会出现无法打开的情况,其中一种可能就是提示“不能初始化因为首选项是无效的”。这种情况很常见,如果不知道处理方法,可能会导致无法继续使用该软件。下面我将为大家详细讲解如何处理这个问题。 什么是“不能初始化因为首选项是无效的”? 在Photoshop软件中,每个用户都可以根据自己的需要对软件的首选项进行调整,如应用程序颜…

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