php smarty 分页类,Smarty分页类Smartypaginate

不罗嗦了,直接上范例

function.paginate_first.php、function.paginate_last.php、function.paginate_prev.php、function.paginate_next.php、function.paginate_middle.php五个文件放在Smarty的plugins目录下,SmartyPaginate.class.php我放在了Smarty的根目录下,你们可以参考。

PHP程序

require_once 'includes/Smarty/SmartyPaginate.class.php';  //包含分页类的类文件

SmartyPaginate::connect(); 连接到分类页

SmartyPaginate::setLimit(10); //一页取多少条记录

$smarty->assign('results',get_od_results()); //将要分页的数据进行分割并指定Smarty变量

SmartyPaginate::assign($smarty); // 赋值给Smarty

$smarty->display('scorderform.html'); //smarty模板

函数:

$_query = sprintf("SELECT SQL_CALC_FOUND_ROWS * FROM table ORDER BY id DESC LIMIT %d,%d", SmartyPaginate::getCurrentIndex(), SmartyPaginate::getLimit()); $_result = $GLOBALS['db']->query($_query); while ($_row = $GLOBALS['db']->fetch_array($_result, MYSQL_ASSOC)) { // collect each record into $_data $_data[] = $_row; } // now we get the total number of records from the table $_query1 = "SELECT FOUND_ROWS() as total"; $_result1 = $GLOBALS['db']->query($_query1); $_row = $GLOBALS['db']->fetch_array($_result1, MYSQL_ASSOC); SmartyPaginate::setTotal($_row['total']); return $_data;

说明:$GLOBALS['db']是我自己事先用的数据库类,大家可以举一反三,使用自己的数据库类

模板相关写法

{paginate_first text="第一页"}{paginate_prev text="上一页"}

{paginate_middle format="page" page_limit="5" link_prefix="" link_suffix="" prefix="" suffix="" class="number current"}

{paginate_next text="下一页"} {paginate_last text="末页"}

{section name=res loop=$results}

这里循环你要分页的数据

{/section}在function.paginate_middle.php中,大约130行左右,将代码修改成以下

if($_item != $_curr_item) {     $_this_url = $_url;    $_this_url .= (strpos($_url, '?') === false) ? '?' : '&';    $_this_url .= SmartyPaginate::getUrlVar($_id) . '=' . $_item;    $_ret .= $_link_prefix . '' . $_text . '' . $_link_suffix;} else {    $_ret .= $_link_prefix . '' . $_text . '' . $_link_suffix;}这样就是在当前页和非当前页采用不同的样式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值