Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Phân trang hồ sơ về vấn đề phía Khách hàng

Như đã nêu trong phần bình luận của tôi.

Bạn có thể làm như sau:

$(document).ready(function()
{
    $('.paginate').live('click', function(e)
    {
        e.preventDefault();
        var btnPage = $(this);
        $.ajax(
        {
            url : btnPage.attr('href'),
            success : function(resp)
            {
                // replace current results with new results.
                $('#project_section').html(resp);
            },
            error : function()
            {
                window.location.href = btnPage.attr('href');
            }
        });
    });
});

Ở trên sẽ sao chép bạn nhấp vào từng liên kết phân trang.

Điều tôi khuyên bạn nên làm tiếp theo là tách mã PHP và HTML tạo danh sách "kết quả" của bạn thành một tệp riêng biệt.

Bằng cách này, trên trang hiển thị kết quả, bạn có thể chỉ cần sử dụng include('path-to-results-file.php'); điều này sẽ hoạt động đối với các yêu cầu không phải ajax và sau đó bạn có thể thực hiện:

Process.php

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
    include('path-to-results-file.php');
    die();
}

Phần trên sẽ phát hiện xem một yêu cầu ajax đã được thực hiện hay chưa và nếu vậy, thay vì hiển thị toàn bộ trang bao gồm cả kết quả, nó sẽ chỉ hiển thị kết quả và phân trang.

Đã cập nhật để bao gồm lời giải thích tốt hơn

Dưới đây là một ví dụ RẤT đơn giản về ý tôi.

Process.php hiện tại

    <?
    // currently contains all of the code required
    // to query the database etc.
?>
<html>
<head>...</head>
<body>
    <!-- header content -->
    <table>
    <?
        // currently contains all of the code required to display
        // the results table and pagination links.
    ?>
    </table>
    <!-- footer content -->
</body>
</html>

process.php mới

<?
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
    {
        include('path-to-results-file.php');
        die();
    }
?>
<html>
<head>...</head>
<body>
    <!-- header content -->
    <? include('path-to-results-file.php'); ?>
    <!-- footer content -->
</body>
</html>

Path-to-results-file.php mới

<?
    // currently contains all of the code required
    // to query the database etc.
?>
<table>
<?
    // currently contains all of the code required to display
    // the results table and pagination links.
?>
</table>

Bây giờ ... Khi bạn truy cập process.php thông thường thông qua trình duyệt của bạn hoặc khi javascript bị tắt. Nó sẽ đơn giản hoạt động giống như cách nó làm mà không có Javascript bây giờ.

Khi bạn truy cập process.php và sau đó nhấp vào một trong các liên kết phân trang (có bật javascript), process.php sẽ phát hiện rằng bạn đang sử dụng Ajax và chỉ gửi lại bảng kết quả.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng MySQL InnoDB bị hỏng - làm thế nào để khắc phục?

  2. Lỗi chung:1366 Giá trị số nguyên không chính xác với bản cập nhật Doctrine 2.1 và Zend Form

  3. Bộ lọc $ không hoạt động trong JPA / Olingo 2.0.11 với MySQL

  4. Làm cách nào để liệt kê tất cả các trình kích hoạt trong cơ sở dữ liệu MySQL?

  5. Làm cách nào để ngăn trường thập phân MySQL được làm tròn?