使用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日

相关文章

  • 使用隐藏的new来创建对象

    使用隐藏的new来创建对象,实际上指的是使用Object.create方法来创建对象。该方法允许您创建新对象的原型,并将其设置为现有对象。这种方式相对于使用构造函数来创建对象,更加灵活。下面是使用隐藏的new来创建对象的完整攻略: 第一步:创建原型对象 使用Object.create方法来创建一个原型对象。该方法可以接受一个对象作为其参数,新对象的原型将设置…

    jquery 2023年5月27日
    00
  • jQuery UI Selectable destroy()方法

    以下是关于 jQuery UI Selectable destroy() 方法的详细攻略: jQuery UI Selectable destroy() 方法 jQuery UI Selectable destroy() 方法用于销毁选择框。该方法可以通过 jQuery selectable()调用。 语法 $( ".selector" …

    jquery 2023年5月11日
    00
  • jQuery Mobile页面domCache选项

    jQuery Mobile页面domCache选项是一个非常实用的功能,它可以启用或禁用DOM缓存,给用户提供更好的用户体验。在启用DOM缓存后,JavaScript和CSS文件将只加载一次,每次重新加载页面时,页面将从缓存中读取,减少了页面的加载时间和服务器的请求量。本文将详细介绍jQuery Mobile页面domCache选项的使用方法和示例说明。 什…

    jquery 2023年5月12日
    00
  • jQWidgets jqxComboBox checkAll()方法

    jQWidgets 的 jqxComboBox 组件提供了 checkAll() 方法,用于选中下拉列表中的所有选项。本文将详细介绍 checkAll() 方法的使用方法,包括概述、示例以及注意事项。 checkAll() 方法概述 checkAll() 方法用于选中下列表中所有选项。该方法没有参数。 checkAll() 方法示例 下面是两个示例,如何使用…

    jquery 2023年5月11日
    00
  • jQWidgets jqxRibbon模式属性

    jQWidgets是一个基于JavaScript的UI组件库,其中jqxRibbon是其提供的一款标签式菜单工具栏控件。jqxRibbon具有丰富的属性,其中包括模式属性。下面将详细讲解jqxRibbon模式属性的使用和示例。 jqxRibbon模式属性 jqxRibbon的模式属性(mode)控制其菜单项的显示方式,包括三种模式:default,popup…

    jquery 2023年5月11日
    00
  • jquery实现异步文件上传ajaxfileupload.js

    jQuery实现异步文件上传ajaxfileupload.js攻略 1. 异步文件上传是什么 异步文件上传解决的问题是怎样在不刷新页面的情况下,将文件上传到服务器并得到返回结果。根据浏览器原生表单的限制,普通的文件上传需要跳转到一个新页面并在其中进行上传操作,这时候会造成页面卡顿、用户体验不好等问题,因此异步文件上传相应就应运而生。 2. ajaxfileu…

    jquery 2023年5月27日
    00
  • js简单正则验证汉字英文及下划线的方法

    下面是关于“js简单正则验证汉字英文及下划线的方法”的完整攻略。 标题 首先,在回答问题时要使用标题来进行分类,以方便读者阅读和理解。下面是对该问题的标题: JS 实现对汉字、英文字母和下划线的简单正则验证方法 正则表达式 验证汉字、英文字母和下划线的正则表达式如下: var reg = /^[\u4E00-\u9FA5A-Za-z_]+$/; 其中,^ 表…

    jquery 2023年5月27日
    00
  • jQuery中bind,live,delegate与one方法的用法及区别解析

    jQuery中bind,live,delegate与one方法的用法及区别解析 在jQuery中,绑定事件有多种方式,比如使用bind、live、delegate和one等方法。这些方法在使用上有些许区别,本文将详细讲解它们的用法及区别解析。 bind方法 bind() 方法绑定给定的事件处理程序,用于选定元素上的一个或多个事件。语法如下: $(select…

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