簡體   English   中英

如何限制分頁頁數-PHP

[英]How to limit the number of pagination pages - PHP

我有我為分頁制作的算法。

$array變量是在設置頁碼和限制后從查詢獲得的結果集。 這是PDO :: fetchAll()函數的結果。

$array["totalCount"]包含表中所有行的計數,不僅包括該集合,還包括所有行。

我想要限制顯示的頁面數量,並使其以某種方式(類似於谷歌樣式分頁)進行搜索,但我在網上搜索了很多類似的問題,但令我苦惱的是猜測如何在我的算法中實現它與眾不同。

提前致謝。

public static function renderPaginationBar($obj, $params) {
    $array = $obj->getAll($params);
    $set = $params["set"];
    $perSet = $params["limit"];
    $pages = ceil((int)$array["totalCount"] / (int)$perSet);

    if($pages > 1 && $set <= $pages) {
        $query = preg_replace('/set=\d*/i', '', http_build_query($_GET));
        ?>
        <ul class="pagination">
        <?php
        if($set > 1) {
            ?>
            <li><a href="?<?php echo $query; ?>&set=1"><<< Inicio</a></li>
            <li><a href="?<?php echo $query; ?>&set=<?php echo ((int)$set - 1) ?>"><<</a></li>
            <?php
        }

        for($i = 1; $i <= $pages; $i++) {
            $class = $set == $i ? "active" : "";
            ?>
            <li class="<?php echo $class; ?>"><a href="?<?php echo $query; ?>&set=<?php echo $i.""; ?>"><?php echo $i; ?></a></li>
            <?php
        }

        if($set < $pages) {
            ?>
            <li><a href="?<?php echo $query; ?>&set=<?php echo ((int)$set + 1); ?>">>></a></li>
            <li><a href="?<?php echo $query; ?>&set=<?php echo $pages; ?>">&Uacute;ltimo >>></a></li>
            <?php
        }
        ?>
       </ul>
       <?php
    }
    unset($array["totalCount"]);
    return $array;
}

在此處輸入圖片說明

您可以嘗試將其顯示為“下一步”和“上一步”按鈕之間的下拉菜單。.這樣會更容易顯示所有頁碼。

或者您可以先獲取當前頁面的值,將其加5並存儲為“ $ add”,然后減5並存儲為“ $ minus”,然后將其插入頁面按鈕中:

<input type="submit" value="<?php echo $page_num;?>" <?php if($pagenum > $add || $pagenum < $minus){ echo "style='display:none'";?>>

它將隱藏當前頁面中大於5且小於5的按鈕

用以下代碼替換“ for”:

    $get_add = $params["set"] + 5;
    $get_minus = $params["set"] - 5;
    for($i = 1; $i <= $pages; $i++) {
        $class = $set == $i ? "active" : "";
        ?>
        <li class="<?php echo $class; ?>" <?php if($i > $get_add || $i < $get_minus){ echo "style='display:none;position:absolute'";?>><a href="?<?php echo $query; ?>&set=<?php echo $i.""; ?>"><?php echo $i; ?></a></li>
        <?php
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM