【问题标题】:How to specify the number of pages shown?如何指定显示的页数?
【发布时间】:2018-03-25 02:40:22
【问题描述】:

分页PHP代码:

<?php

//Connecting To The DB And Fetching Number Of Rows.
$stmt = $pdo->prepare('SELECT * FROM locations');
$stmt->execute();
$count = $stmt->rowCount();
$values = $stmt->fetchAll(); 

//Check If Page Number Is Set To Specific Value.
if (isset($_GET['pageno'])) 
{
    $pageno = $_GET['pageno'];                                //Current Page Number.
    $no_of_records_per_page = 100;                           // Number Of Rows Per Page.
    $total_pages = ceil($count / $no_of_records_per_page);  //Total Number Of Pages.
    $offset = ($pageno-1) * $no_of_records_per_page;       //Starting From. 
} 

//If Page Number Not Specified The First Page Will Be Shown.
else 
{
    $pageno = 1;
}

?>

它下面的HTML代码:

<ul class="pagination">
//First Page.
<li>
    <a href="?pageno=1">First</a>
</li>
//Previous Page.
<li>
    <a href="<?php if($pageno <= 1){ echo '#'; } else { echo "?pageno=".($pageno - 1); } ?>">Prev</a>
</li>
<li>
    //Loop Through Pages.
    <?php
        for ($i=1; $i <= $total_pages ; $i++) 
        { 
            echo '<a href="?pageno='.$i.'">'.$i.'</a>';
        }
    ?>
</li>
//Next Page.
<li>
    <a href="<?php if($pageno >= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next</a>
</li>
//Last Page.
<li>
    <a href="?pageno=<?php echo $total_pages; ?>">Last</a>
</li>

它显示了所有页面:

First Previous 1 2 3 4 5 6 7 8 Next Last

但是如果有很多页面就会错过。

我想显示特定数量的页面,例如 5 或 6:

First Previous 1 2 3 4 5 .. .. 8 Next Last

有可能吗?有没有一个库/插件?

【问题讨论】:

标签: php html mysql sql pdo


【解决方案1】:

最好使用将处理数据服务器端的数据表,这将是您的 ajax 调用,数据将在单击下一步或分页时加载。它将减少一次获取数据的负载,您也不必为分页编写单独的代码。 请参考以下链接。

https://datatables.net/examples/data_sources/server_side.html

希望对你有帮助。

【讨论】:

    【解决方案2】:

    根据您希望为“额外”页码显示的内容,更改 if 语句中回显的内容:

    //Loop Through Pages.
    <?php
        for ($i=1; $i <= $total_pages ; $i++) 
        { 
            if($total_pages > 8 && $i > 6 && $i < $total_pages) {
                echo '..';
            } else {
                echo '<a href="?pageno='.$i.'">'.$i.'</a>';
            }
        }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2020-12-27
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      相关资源
      最近更新 更多