Home >Web Front-end >Front-end Q&A >Using jquery to implement paging query data

Using jquery to implement paging query data

王林
王林Original
2023-05-14 12:32:38940browse

With the continuous development of Web technology, more and more websites need to support the function of paging data query. jQuery is a very popular JavaScript library that can help developers more conveniently operate DOM, events, animations, etc., so using jQuery to implement paging query data is a good choice.

This article will introduce the basic principles, steps and code implementation methods of using jQuery to implement paging query data, and provide a simple example for readers' reference.

1. Basic Principle

The basic principle of using jQuery to implement paging query data is to send an asynchronous request to the background through AJAX technology, obtain the data that needs to be displayed, and display it on the page. During the implementation process, the following technologies need to be used:

  1. AJAX technology: Use jQuery's AJAX method to send asynchronous requests to the background to obtain the data that needs to be displayed.
  2. Paging algorithm: Calculate the data to be displayed in the background, and then determine the starting position and quantity of the data to be displayed based on the current page number and the number of records displayed on each page.
  3. HTML, CSS and JavaScript: Use jQuery to operate DOM elements, dynamically generate paging controls, and implement paging functions.

2. Steps

The following are the basic steps to use jQuery to implement paging query data:

  1. Define a DIV element to display the data that needs to be queried data and set an ID for the element.
  2. Define a JavaScript function to send an asynchronous request to the background and display the obtained data in the specified DIV element.
  3. Define a JavaScript function to generate a paging control and set event listeners for each button of the paging control.
  4. After the page is loaded, call the above two functions to display the data and paging controls of the first page.
  5. When the user clicks the button on the paging control, the first function is called to obtain the data of the specified page number and display it in the specified DIV element.

3. Code Implementation

The following is a simple example code that uses jQuery to implement paging query data:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>分页查询数据示例</title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script src="paging.js"></script>
    <link rel="stylesheet" href="paging.css">
</head>
<body>
<div id="data"></div>
<div id="paging"></div>
<script>
    $(document).ready(function() {
        // 显示第一页数据和分页控件
        getDataWithPage(1);
        generatePaging(1);
        
        // 为分页控件上的按钮添加事件监听器
        $('#paging').on('click', '.page-btn', function() {
            var page = parseInt($(this).data('page'));
            getDataWithPage(page);
            generatePaging(page);
        });
    });
</script>
</body>
</html>
/*
 * 分页查询数据相关的 JavaScript 函数
 */

var PAGE_SIZE = 10;         // 每页显示的记录数
var TOTAL_PAGES = 20;       // 总页数(假设为 20)

// 向后台发送异步请求,获取指定页码的数据,并将其显示在指定的 DIV 元素中
function getDataWithPage(page) {
    var startIndex = (page - 1) * PAGE_SIZE + 1;
    var endIndex = startIndex + PAGE_SIZE - 1;
    $.ajax({
        url: 'data.php',        // 后台数据接口 URL
        method: 'GET',
        data: {
            startIndex: startIndex,
            endIndex: endIndex
        },
        success: function(data) {
            // 将获取到的数据显示在指定的 DIV 元素中
            $('#data').html(data);
        },
        error: function() {
            alert('获取数据失败');
        }
    });
}

// 生成分页控件,并为分页控件的每个按钮设置事件监听器
function generatePaging(currentPage) {
    var pagingHTML = '<ul>';
    if (currentPage == 1) {
        pagingHTML += '<li><span class="disabled">上一页</span></li>';
    } else {
        pagingHTML += '<li><a href="javascript:void(0);" class="page-btn" data-page="' + (currentPage - 1) + '">上一页</a></li>';
    }
    for (var i = 1; i <= TOTAL_PAGES; i++) {
        if (i === currentPage) {
            pagingHTML += '<li><span class="current">' + i + '</span></li>';
        } else {
            pagingHTML += '<li><a href="javascript:void(0);" class="page-btn" data-page="' + i + '">' + i + '</a></li>';
        }
    }
    if (currentPage == TOTAL_PAGES) {
        pagingHTML += '<li><span class="disabled">下一页</span></li>';
    } else {
        pagingHTML += '<li><a href="javascript:void(0);" class="page-btn" data-page="' + (currentPage + 1) + '">下一页</a></li>';
    }
    pagingHTML += '</ul>';
    $('#paging').html(pagingHTML);
}
/*
 * 分页控件相关的 CSS 样式
 */

#paging ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

#paging ul li {
    display: inline-block;
    margin: 0 5px;
    padding: 0;
}

#paging ul li span {
    display: inline-block;
    padding: 5px 15px;
    border: 1px solid #ddd;
    background-color: #fff;
    color: #333;
    cursor: default;
}

#paging ul li a {
    display: inline-block;
    padding: 5px 15px;
    border: 1px solid #ddd;
    background-color: #fff;
    color: #333;
    text-decoration: none;
}

#paging ul li a:hover {
    background-color: #f5f5f5;
}

#paging ul li .current {
    display: inline-block;
    padding: 5px 15px;
    border: 1px solid #ddd;
    background-color: #f5f5f5;
    color: #333;
    cursor: default;
}

#paging ul li .disabled {
    display: inline-block;
    padding: 5px 15px;
    border: 1px solid #ddd;
    background-color: #fff;
    color: #bbb;
    cursor: default;
}

It should be noted that the above code is a A simple example, which needs to be adjusted and optimized according to actual conditions in actual applications. At the same time, it is also necessary to ensure the normal operation and data security of the background data interface to avoid SQL injection and other attacks.

The above is the detailed content of Using jquery to implement paging query data. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn