如何在页面底部显示分页?

时间:2014-04-04 06:49:06

标签: php datagrid

我已经用php创建了一个datagrid,我已经计算了每页10条记录中table和datagrid的记录数。

我的问题是分页显示在datagrid的底部。如果记录数增加,则底部div中的页数不会显示。

如果我的记录为1000并且每页显示10条记录,则页数将为100。

<?php for($i=1;$i<=$page_count;$i++) { ?>
<li><a><?php print("$i"); ?></a></li>
<?php } ?>

显示以下顶部代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 100

我希望如果用户点击12页,则不会显示第1页到第9页:

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

你必须设置$ numberItems这是项目的总数,$ firstElementDisplay显示当前元素的索引,$ itemsPerPage显示每页显示的项目数和$ showeachside你要显示的页面数量选定的页面

<?php

    $numberItems = 20; // Number of items;
    $firstElementDisplayed = 3; // Current start element position

    $itemsPerPage = 2; // Number of items showed per page
    $showeachside = 3; //  Number of page displayed either side of selected page

    if(empty($firstElementDisplayed))$firstElementDisplayed=0;  // Current start element position

    $page_count = ceil($numberItems / $itemsPerPage); // Number of pages
    $currentPage = ceil($firstElementDisplayed / $itemsPerPage); // Current page
?>
<?php
if(($firstElementDisplayed-$itemsPerPage) >= 0) //We are not on the first page => << is displayed
{
?>
<a href="#urlFirstPage"><<</a> 
<?php
}
?>
<?php 
$eitherside = ($showeachside * $itemsPerPage);
if($firstElementDisplayed+1 > $eitherside) echo " .... ";
$page=1;
for($y=0;$y<$numberItems;$y+=$itemsPerPage)
{
    $class=($y==$firstElementDisplayed)?"pageselected":"";
    if(($y > ($firstElementDisplayed - $eitherside)) && ($y < ($firstElementDisplayed + $eitherside)))
    {
        ?>
        <a class="<?php print($class);?>" href="#urlPage"><?php print($page);?></a>
        <?php
    }
    $page++;
}
if(($firstElementDisplayed+$eitherside)<$numberItems)print (" .... ");
?>
<?php 
if($firstElementDisplayed+$itemsPerPage<$numberItems) //We are not on the last page => >> is displayed
{
?>
<a href="#urlLastPage">>></a> 
<?php
}
?>
Page <?php print($currentPage);?> of <?php print($page_count);?>