PHP: Phân trang trong PHP

Vuong Nguyen

Em đang gặp vấn đề trong thuật toán phân trang. Đây là code của em:

<div class="thanh_phan_trang">
    <?php

    if ($current_page >= 2 && $current_page <= $total_page-1 || $current_page == $total_page)  {
        echo'<a href="#">PREV</a>   ';
    }

    $b = $current_page - 2;
    $c = $current_page + 2;

    if ($b <= 0)    {
        $c -= ($b - 1);
        $b = 1;
    }

    if ($c > $total_page)   {
        $c = $total_page;
        $b = $b - 1 ;
    }

    for ($a = $b; $a <= $c; $a++)    {
        if ($a == $current_page)    {
            echo'<span style="background-color: blue; color: white">'.$a.'</span>   ';
        }
        else    {
            echo'<a href="index.php?page='.$a.'">'.$a.'</a>   ';
        }
    }

    if ($current_page >= 2 && $current_page <= $total_page-1 || $current_page == 1 )  {
        echo'<a href="#">NEXT</a>   ';
    }

    ?>
</div>

Mục đích của em là muốn hiển thị thanh phấn trang với tối đa 5 ô chọn trang (còn lại thì Prev và Next). và trang đang ở thì nằm giữa. Ngoại trừ 2 trang đầu và cuối thì lùi dần về 2 bên (ví dụ trang 1 thì ở ngoài cùng, trang 2 lùi vào 1 ô, trang 3 thì ở giữa, cứ thế đến trang cuồi cùng -1 thì ở gần ngoài và trang cuối ở ngoài cùng).

Em mới chỉ làm được một nửa, vì ở trang cuối cùng thì hiển thị ra là 4 ô chọn chứ không phải 5 ô như mong đợi. Em nghĩ ở đây là do thuật toán ở đoạn if $c > $total page.

Chỉnh sửa
Thêm bình luận
Huỷ

Thêm Trả Lời

Câu Hỏi Liên Quan