Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Melaksanakan Penomboran Pintar untuk Kawalan Penomboran Dipertingkatkan?

Bagaimana untuk Melaksanakan Penomboran Pintar untuk Kawalan Penomboran Dipertingkatkan?

Linda Hamilton
Lepaskan: 2024-10-17 16:12:02
asal
854 orang telah melayarinya

How to Implement Smart Pagination for Enhanced Pagination Control?

Melaksanakan Penomboran Pintar untuk Paparan Penomboran Dioptimumkan

Penomboran memainkan peranan penting dalam navigasi pengguna melalui set data yang besar dengan membahagikan kandungan kepada halaman yang boleh diurus. Walau bagaimanapun, penomboran tradisional boleh membawa kepada senarai halaman yang luas untuk set data yang luas, menyukarkan pengguna untuk menavigasi dengan berkesan.

Untuk menangani isu ini, algoritma penomboran pintar boleh dilaksanakan, yang secara selektif menunjukkan hanya beberapa halaman bersebelahan mengelilingi halaman semasa. Teknik pemangkasan ini meminimumkan panjang senarai halaman, mempertingkatkan pengalaman pengguna dengan menyediakan navigasi yang lebih ringkas dan terurus.

Dalam demonstrasi ini, kami akan menumpukan pada pelaksanaan PHP bagi algoritma penomboran pintar:

<code class="php">// Limit the number of adjacent pages
$adjacents = 3;

// Fetch data for the current page
// ... (Code snippet omitted for brevity)

// Calculate pagination information
$total_pages = ceil($total_results / $limit);
$prev = $page - 1;
$next = $page + 1;
$lastpage = $lastpage - 1;

// Initialize pagination HTML markup
$pagination = '<nav aria-label="page navigation"><ul class="pagination">';

// Determine page range to display based on current page and adjacent page limit
if ($lastpage < 7 + ($adjacents * 2)) {
    // Display all pages
    for ($i = 1; $i <= $lastpage; $i++) {
        $pagination .= "<li class='page-item" . ($i == $page ? ' active' : '') . "'><a class='page-link' href='?page=$i'>$i</a></li>";
    }
} else {
    // Display first and last pages
    $pagination .= "<li class='page-item'><a class='page-link' href='?page=1'>1</a></li>";
    $pagination .= "<li class='page-item disabled'><span class='page-link'>...</span></li>";
    $pagination .= "<li class='page-item'><a class='page-link' href='?page=$lastpage'>$lastpage</a></li>";

    // Display pages adjacent to the current page
    if ($page < 1 + ($adjacents * 2)) {
        // Display pages near the beginning
        for ($i = 1; $i < 4 + ($adjacents * 2); $i++) {
            $pagination .= "<li class='page-item" . ($i == $page ? ' active' : '') . "'><a class='page-link' href='?page=$i'>$i</a></li>";
        }
    } elseif ($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {
        // Display pages in the middle
        $pagination .= "<li class='page-item disabled'><span class='page-link'>...</span></li>";
        for ($i = $page - $adjacents; $i <= $page + $adjacents; $i++) {
            $pagination .= "<li class='page-item" . ($i == $page ? ' active' : '') . "'><a class='page-link' href='?page=$i'>$i</a></li>";
        }
    } else {
        // Display pages near the end
        $pagination .= "<li class='page-item disabled'><span class='page-link'>...</span></li>";
        for ($i = $lastpage - (2 + ($adjacents * 2)); $i <= $lastpage; $i++) {
            $pagination .= "<li class='page-item" . ($i == $page ? ' active' : '') . "'><a class='page-link' href='?page=$i'>$i</a></li>";
        }
    }
}

// Display previous and next page links
if ($page != 1) {
    $pagination .= "<li class='page-item'><a class='page-link' href='?page=$prev'>Previous</a></li>";
}
if ($page != $lastpage) {
    $pagination .= "<li class='page-item'><a class='page-link' href='?page=$next'>Next</a></li>";
}

// Output pagination HTML
echo $pagination . '</ul></nav>';</code>
Salin selepas log masuk

Pelaksanaan ini menggunakan gabungan gelung dan pernyataan bersyarat untuk menentukan halaman yang hendak dipaparkan berdasarkan halaman semasa dan had halaman bersebelahan yang ditentukan. Ia juga mengendalikan kes tepi seperti halaman pertama atau terakhir dan melaraskan paparan penomboran sewajarnya. Dengan memanfaatkan algoritma penomboran pintar ini, anda boleh memberikan pengalaman penomboran yang lebih diperkemas dan mesra pengguna untuk set data yang luas.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penomboran Pintar untuk Kawalan Penomboran Dipertingkatkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan