我已经用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页:
答案 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);?>