#1 jake
好了,下面我们来使用上文的这些分页数据。
Array
(
[total_count] => 13 // 数据总记录
[page_size] => 5 // 每页多少条记录
[total_page] => 3 // 总页数
[first_page] => 1 // 第一页的页码
[prev_page] => 1 // 上一页的页码
[next_page] => 2 // 下一页的页码
[last_page] => 3 // 最后一页的页码
[current_page] => 1 // 当前页码
[all_pages] => Array // 页码数据,这里是全部的页码
(
[0] => 1
[1] => 2
[2] => 3
)
)
刚才我们已经将分页数据输入到$this->pager上面去了。我们在smarty模板中:
<{if $pager}>
共有留言<{$pager.total_count}>条,共有<{$pager.total_page}>页(每页<{$pager.page_size}>条留言):
<{if $pager.current_page != $pager.first_page}>
前页 |
上一页 |
<{/if}>
<{foreach from=$pager.all_pages item=thepage}>
<{if $thepage != $pager.current_page}>
<{$thepage}>
<{else}>
<{$thepage}>
<{/if}>
<{/foreach}>
<{if $pager.current_page != $pager.last_page}>
|
下一页 |
后页
<{/if}>
<{/if}>
显示的效果是:
这里详细说明一下,首先我们是判断是否存在分页数据,在数据记录数小于页面大小的时候,分页数据将不显示。
<{if $pager}>
然后来显示了一些分页的数据:
共有留言<{$pager.total_count}>条,共有<{$pager.total_page}>页(每页<{$pager.page_size}>条留言):
接着使用了判断是否是第一页,是就不会显示“前页”和“上一页”
然后是循环显示页码
<{foreach from=$pager.all_pages item=thepage}>
<{if $thepage != $pager.current_page}>
<{$thepage}>
<{else}>
<{$thepage}>
<{/if}>
<{/foreach}>
请注意这里的spUrl的写法,<{spUrl c=main a=index page=$thepage}> 最后的page是输入到程序中的页码,它将被程序中的$this->spArgs('page', 1)获取。
最后是判断当前是否最后一页,不是的话,将显示“下一页”和“后页”
这里我们看到了SpeedPHP的spPager分页程序的使用方法。在实际应用中,因为页面数据是经常会将这些smarty的显示作为标准的格式,在许多地方都能够重复地使用,极大提供开发效率。
2012-08-04 16:39:23