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>
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!