使用Jquery+Ajax+Json如何实现分页显示附JAVA+JQuery实现异步分页

使用JQuery+Ajax+Json实现分页显示的完整攻略如下:

步骤一:编写前端代码

  1. 在HTML中添加以下代码:
<div id="content"></div>
<div id="pagination"></div>

其中content用于展示分页数据,pagination用于展示分页页码。

  1. 在JS中添加以下代码:
var page = 1; //当前页码
var pageSize = 10; //每页显示数量

//获取数据并渲染页面
function loadData() {
    $.ajax({
        type: "get",
        url: "data.php",
        data: {
            page: page,
            pageSize: pageSize
        },
        dataType: "json",
        success: function(data) {
            var html = '';
            $.each(data, function(i, item) {
                html += '<p>' + item.title + '</p>'; //获取数据中的标题并添加到html中
            });
            $('#content').html(html); //将数据添加到content中
            renderPage(data.length); //渲染分页
        },
        error: function(xhr, status, error) {
            console.log(error); //请求失败时打印错误信息
        }
    });
}

//渲染分页
function renderPage(total) {
    var totalPages = Math.ceil(total / pageSize); //计算总页数
    var pageHtml = '';
    for (var i = 1; i <= totalPages; i++) {
        if (i == page) {
            pageHtml += '<span class="current">' + i + '</span>'; //当前页
        } else {
            pageHtml += '<a href="javascript:;" onclick="goPage(' + i + ')">' + i + '</a>'; //点击跳转到指定页
        }
    }
    $('#pagination').html(pageHtml); //将页码添加到pagination中
}

//跳转到指定页
function goPage(p) {
    page = p; //修改当前页码
    loadData(); //重新加载数据
}

loadData(); //页面加载完成后,加载第一页的数据

步骤二:编写后端代码

  1. 在PHP中编写接口代码(这里假设接口名为data.php):
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', ''); //连接数据库
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : 1; //获取当前页码
$pageSize = isset($_REQUEST['pageSize']) ? $_REQUEST['pageSize'] : 10; //获取每页显示数量
$start = ($page - 1) * $pageSize; //计算起始位置
$sql = "select * from article limit $start, $pageSize"; //查询语句
$stmt = $pdo->query($sql); //执行查询
$data = $stmt->fetchAll(PDO::FETCH_ASSOC); //获取查询结果
echo json_encode($data); //将查询结果以json格式返回
?>

示例一:异步加载分页数据

假设某个页面,需要在页面中异步加载一段数据,并使用分页来展示。在这个页面中,需要有一个按钮用于加载数据,并且需要指定数据来源的URL。

  1. HTML代码
<button id="loadData">加载数据</button>
<div id="content"></div>
<div id="pagination"></div>
  1. JS代码
var page = 1; //当前页码
var pageSize = 10; //每页显示数量
var url = 'data.php';

//获取数据并渲染页面
function loadData() {
    $.ajax({
        type: "get",
        url: url,
        data: {
            page: page,
            pageSize: pageSize
        },
        dataType: "json",
        success: function(data) {
            var html = '';
            $.each(data, function(i, item) {
                html += '<p>' + item.title + '</p>'; //获取数据中的标题并添加到html中
            });
            $('#content').html(html); //将数据添加到content中
            renderPage(data.length); //渲染分页
        },
        error: function(xhr, status, error) {
            console.log(error); //请求失败时打印错误信息
        }
    });
}

//渲染分页
function renderPage(total) {
    var totalPages = Math.ceil(total / pageSize); //计算总页数
    var pageHtml = '';
    for (var i = 1; i <= totalPages; i++) {
        if (i == page) {
            pageHtml += '<span class="current">' + i + '</span>'; //当前页
        } else {
            pageHtml += '<a href="javascript:;" onclick="goPage(' + i + ')">' + i + '</a>'; //点击跳转到指定页
        }
    }
    $('#pagination').html(pageHtml); //将页码添加到pagination中
}

//跳转到指定页
function goPage(p) {
    page = p; //修改当前页码
    loadData(); //重新加载数据
}

$(document).ready(function() {
    $('#loadData').click(function() {
        loadData(); //加载数据并渲染页面
    });
});

示例二:动态修改数据来源

假设某个页面需要动态修改数据来源的URL,并且需要充值到第一页。

  1. HTML代码
<input type="text" id="url" value="data.php" />
<button id="loadData">加载数据</button>
<div id="content"></div>
<div id="pagination"></div>
  1. JS代码
var page = 1; //当前页码
var pageSize = 10; //每页显示数量
var url = ''; //数据来源URL

//获取数据并渲染页面
function loadData() {
    $.ajax({
        type: "get",
        url: url,
        data: {
            page: page,
            pageSize: pageSize
        },
        dataType: "json",
        success: function(data) {
            var html = '';
            $.each(data, function(i, item) {
                html += '<p>' + item.title + '</p>'; //获取数据中的标题并添加到html中
            });
            $('#content').html(html); //将数据添加到content中
            renderPage(data.length); //渲染分页
        },
        error: function(xhr, status, error) {
            console.log(error); //请求失败时打印错误信息
        }
    });
}

//渲染分页
function renderPage(total) {
    var totalPages = Math.ceil(total / pageSize); //计算总页数
    var pageHtml = '';
    for (var i = 1; i <= totalPages; i++) {
        if (i == page) {
            pageHtml += '<span class="current">' + i + '</span>'; //当前页
        } else {
            pageHtml += '<a href="javascript:;" onclick="goPage(' + i + ')">' + i + '</a>'; //点击跳转到指定页
        }
    }
    $('#pagination').html(pageHtml); //将页码添加到pagination中
}

//跳转到指定页
function goPage(p) {
    page = p; //修改当前页码
    loadData(); //重新加载数据
}

$(document).ready(function() {
    $('#url').change(function() {
       url = $(this).val(); //修改数据来源URL
       page = 1; //重置分页为第一页
    });

    $('#loadData').click(function() {
        loadData(); //加载数据并渲染页面
    });
});

以上就是使用JQuery+Ajax+Json实现分页显示的完整攻略,希望对你有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Jquery+Ajax+Json如何实现分页显示附JAVA+JQuery实现异步分页 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • jQWidgets jqxDataTable可编辑属性

    以下是关于“jQWidgets jqxDataTable可编辑属性”的完整攻略,包含两个示例说明: 简介 jqxDataTable 是 jQWidgets 的一个控件,用于显示和编辑表格数据。jqxDataTable 可以通过设置 editable 属性来启用表格的编辑功能。 详细攻略 以下是 jqxDataTable 控件的可编辑属性的详细攻略: 使用 e…

    jquery 2023年5月11日
    00
  • jQWidgets jqxDataTable columnGroups属性

    以下是关于“jQWidgets jqxDataTable columnGroups属性”的完整攻略,包含两个示例说明: 简介 columnGroups 属性是 jqxDataTable 控件的一个属性,用于在表格中创建列分组。 详细攻略 以下是 jqxDataTable 控件的 columnGroups 属性的详细攻略: 使用 columnGroups 属性…

    jquery 2023年5月11日
    00
  • 使用FormData实现上传多个文件

    使用FormData实现上传多个文件可以分为以下步骤: 构建FormData对象 我们可以通过FormData()构造函数来得到一个FormData实例,如下: var formdata = new FormData(); 向FormData对象中添加文件 使用FormData对象的append()方法向其中添加文件,如下所示: formdata.appen…

    jquery 2023年5月27日
    00
  • jQWidgets jqxResponsivePanel崩溃事件

    首先,需要明确的是,jQWidgets是一个基于jQuery的前端UI组件库,jqxResponsivePanel是其中一个重要的组件之一。在使用该组件的过程中,可能会遇到崩溃事件,需要开发人员们采取相应的措施来解决。 以下是处理“jQWidgets jqxResponsivePanel崩溃事件”的完整攻略: 1. 检查代码中依赖的文件是否正确 当使用jqx…

    jquery 2023年5月11日
    00
  • jQuery简单获取键盘事件的方法

    当需要对键盘输入进行事件监听时,通过 jQuery 提供的keydown()、keyup()、keypress()方法可以轻松实现。下面将分别介绍这三个方法的用法。 事件的绑定 jQuery 中通过on()方法来绑定事件,通过该方法,可以轻松地监听特定的事件,并且可以绑定多个不同的事件。 $(selector).on(event, function(){ /…

    jquery 2023年5月28日
    00
  • jQuery移动页面类选项

    jQuery Mobile是jQuery团队为移动设备打造的一款专用开发框架。它几乎涵盖了绝大多数移动页面开发所需的元素和交互功能,其中就包含了很多与页面类有关的选项。下面我们来详细解析一下这些选项: data-role属性 data-role属性是jQuery Mobile中最重要的属性之一,它用来定义元素在页面中扮演的角色。比如我们经常使用的<di…

    jquery 2023年5月12日
    00
  • jquery.cookie用法详细解析

    下面为您详细讲解“jquery.cookie用法详细解析”的完整攻略。 什么是jquery.cookie? jquery.cookie是一个jquery插件,它可以让我们方便地读写COOKIE。 如何使用jquery.cookie? 1. 引入jquery.cookie.js 首先,我们需要引入jquery.cookie.js库。在HTML中引入jquery…

    jquery 2023年5月27日
    00
  • jQuery UI Slider widget()方法

    以下是关于 jQuery UI 滑块 widget() 方法的详细攻略: jQuery UI 滑块 widget() 方法 widget() 方法用于获取滑块的 jQuery UI 对象。通过该方法可以获取滑块的所有属性和方法。 语法 $( ".selector" ).slider( "widget" ); 示例一:获…

    jquery 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部