像 stackoverflow 那样的分页
我是 php 的新手,尤其是在分页方面。
我的问题是,如何使分页像stackoverflow的分页一样?
我的意思是这样的分页:
1 ... 5 6 7 8 9 ... 25
(第一个数字和最后一个数字总是出现,但中间只有5个数字,所选页面绝对在中间)
在 php 中,我尝试进行分页,
<?php
//Show page links
for($i=1; $i<=$pages; $i++)
{
echo '<li id="'.$i.'">'.$i.'</li>';
}
?>
但它将显示所有页面,例如
1 2 3 4 5 6 7 8 9 10 等
有没有人有简单的逻辑例子来解决这个问题?
非常感谢:)
i'm a newbie in php especially on making pagination.
my question is, how to make paging like stackoverflow's pagination?
i mean paging like this :
1 ... 5 6 7 8 9 ... 25
(the first number and the last number is always appear, but in the middle only 5 numbers with the selected page absolutely in the middle)
in php i have tried making paging,
<?php
//Show page links
for($i=1; $i<=$pages; $i++)
{
echo '<li id="'.$i.'">'.$i.'</li>';
}
?>
but it will be shown all of pages like
1 2 3 4 5 6 7 8 9 10 etc
any body have simple logic example to solve this problem?
many thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这将生成如上所述的数字,当前 = 7,页数 = 25。将数字替换为链接以获得实际的分页索引。
输出:
This will generate the numbers as per above with current = 7, pages = 25. Replace the numbers with links to get an actual pagination index.
Output:
下面是我几年前写的通用分页类1的片段前。我对其进行了编辑以仅显示相关部分。
示例 1
cntAround = 1
、current = 5
、cntPages = 9
:示例 2
cntAround = 3
、current = 5
、cntPages = 11
:1) 文章为丹麦语。 Google 翻译版本 在这里。
Below is a snippet from a general pagination class1 I wrote a few years ago. I have edited it to show the relevant parts only.
Example 1
cntAround = 1
,current = 5
,cntPages = 9
:Example 2
cntAround = 3
,current = 5
,cntPages = 11
:1) Article is in Danish. Google Translate'd version is here.
有点像这样(伪代码):
Somewhat like this(pseudo-code):
您可以使用 Zend_Paginator 来做到这一点,并学习使用当您使用 Zend 框架时。
You could use Zend_Paginator to do just that, and learn to use the Zend Framework while you're at it.
下面是 php 类链接,您可以从中下载 php 类进行分页。
http://www.phpclasses.org /search.html?words=paging&x=0&y=0&go_search=1
Below is php classes link from where you can download php class for pagination.
http://www.phpclasses.org/search.html?words=paging&x=0&y=0&go_search=1
如果您(可能)有大量页面,请考虑使用“对数”页面导航,如下所述(包含示例代码):
如何对很多很多页面进行页面导航?对数页面导航
(请注意,当然,它也适用于少量页面!)
If you (might potentially) have a large number of pages, consider using "logarithmic" page navigation, as described here (sample code included):
How to do page navigation for many, many pages? Logarithmic page navigation
(Note that it'll work just fine for small numbers of pages, too, of course!)