Smarty的分页实现

smarty Pager 博文链接:https://roserouge.iteye.com/blog/221665 立即下载
Smarty中的分页有很多方法。
  1。使用Smarty的分页插件,如Pager,pagnition,sliding_page等,不过感觉都不是太好,几乎都有一些Bug。
  有兴趣试用和自己去改进的朋友可以看看:
http://smarty.php.net/contribs/plugins/view.php/function.pager.php
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=2327
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=1604

  2。使用分页类库,呵呵,这个网上就太多了,一大把,不过我还没有发现写得很好的,特别是容易扩展的。
  在搜索的时候还看到一个号称分页类终结者的,哈哈,有点好笑。分页类中把SQL都包含进去了,这个是绝对不能容忍的,可以说作者对OO的认识还比较浅。

  不过分页类库不一定适合Smarty,特别是当记录集数据是二维数组时,我不想放弃Smarty方便的Section。这是我没有用PEAR::Pager的原因,否则还要先对数组进行处理,也很麻烦。

  3。自己写啦。。我暂时没有选择写成类库,不过改写很容易,下面主要讲讲思路。

  其实Smarty的分页非常简单,首先我们可以在模板中这样实现:
{$pager_Links}
{section name="list" loop=$productID start=0 max=$pager_Total step=1}
{if ($smarty.section.list.index >= $pager_StartNum )&& ($smarty.section.list.index <= $pager_EndNum )}
产品名称:{$productName[list]}
产品类别:{$catalogName[list]}
{/if}
{/section}

以上就可以将一个记录集(二维数组)轻松地打印出来,而且限定每页的显示范围。
{$pager_Links} 分页标签(就是上一页,下一页等)
max=$pager_Total 记录总数
$smarty.section.list.index >= $pager_StartNum )&& ($smarty.section.list.index <= $pager_EndNum )
这一行是用来限定记录的显示范围的,如果记录的索引落在这个范围之内就显示出来,否则就不显示。

以上可以看出,在PHP文件中,我们只需要传递4个变量给Smarty对象:
1.记录总数
2.每页记录起始数
3.每页记录结束数
4.分页标签

以下代码代参考:
标签可以自己去写了,可以扩充成更强大的。现在我没有时间,不然会写一个
<?php
$smartyArr = $smarty->get_template_vars();

//记录总数,每页显示记录条数,总页数
$pager_Total = count($smartyArr['productID']);
$pager_Size = 10;
$pager_Number = ceil($pager_Total/$pager_Size);
$pager_URL = "index.php?action=View";

//当前页的页数,从REQUEST获得
if(isset($_GET['pager_PageID'])&& !empty($_GET['pager_PageID'])){
$pager_PageID = intval($_GET['pager_PageID']);
}else{
//第一次访问
$pager_PageID = 1;
}

//每页的起,始记录数
if ($pager_PageID == 1 ) {
$pager_StartNum = 0;
} else {
$pager_StartNum = ($pager_PageID -1) * $pager_Size;
}

$pager_EndNum = $pager_StartNum + $pager_Size;

if ($pager_PageID == 1 && $pager_Number>1) {
//第一页
$pager_Links = "上一页 | <a href=".$pager_URL."&pager_PageID=".($pager_PageID+1).">下一页</a>";
} elseif($pager_PageID == $pager_Number && $pager_Number>1) {
//最后一页
$pager_Links = "<a href=".$pager_URL."&pager_PageID=".($pager_PageID-1).">上一页</a> | 下一页";
} elseif ($pager_PageID > 1 && $pager_PageID <= $pager_Number) {
//中间
$pager_Links = "<a href=".$pager_URL."&pager_PageID=".($pager_PageID-1).">上一页</a> | <a href=".$pager_URL."&pager_PageID=".($pager_PageID+1).">下一页</a>";
} else {
$pager_Links = "上一页 | 下一页";
}

$smarty->assign('pager_Total',$pager_Total);
$smarty->assign('pager_StartNum',$pager_StartNum);
$smarty->assign('pager_EndNum',$pager_EndNum);
$smarty->assign('pager_Links',$pager_Links);

return $smarty->fetch ("list.tpl");
?>
smarty登陆分页 用smarty写的登陆(自己写的,效果一般) 商品的分页,显示 立即下载

相关推荐

PHP、Smarty与jQuery Ajax 分页插件jquery.pager.js的使用

ajax技术,现在十分流行,如果分页也用ajax写的话,将大大提高用户体验

smarty分页

index.php     include "./libs/Smarty.class.php";                      require("page_class.php");                           require("mydb_class.php");                         $tpl = new Smarty();

dunyanan1的专栏 412

smarty简单分页的实现方法

主要介绍了smarty简单分页的实现方法,以一个具体的实例讲述了smarty分页的完整实现过程,需要的朋友可以参考下

基于smarty 的分页代码

以数组的思想编写的 分页样式//分页function page($total,$current){    $page = array();    if($total>7)        //总数大于7    {        if($current>=3)        //前三页显示        {            $pagef = array();

ancruna的专栏 721

看不懂分子动力学模拟的结果?一文读懂RMSD曲线

随后,将每一帧结构与初始模板进行叠合,计算对应原子的平均偏移量,即RMSD。总之,掌握 RMSD 的解读方法,就等于抓住了评估分子动力学模拟成败与质量的“总开关”。①在模拟初始阶段,RMSD会从0迅速上升,这是蛋白质从静态晶体或模型结构释放到溶液环境中并逐渐适应的正常过程。②经过一段时间后,曲线不再系统性上升或下降,而是围绕一个平均值,小幅度地上下波动,形成一个稳定的“平台”。这种情况下,RMSD 在初始快速上升后,并未进入平台,而是持续甚至加速上升,始终未见收敛。🔍 如何解读不同趋势的RMSD曲线。

weixin_46587777的博客 4893

Windows下CMake编译VTK

选择项目INSTALL,生成该项目,得到vtk在Debug模式下的lib和dll文件,在文件夹中可看见,已得到debug模式下lib库与dll库。,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。在上面点击Configure后,红色区域没有了。选择自己vs编译平台的版本信息,我这边已经设置好了没有这个设置了,借用参考博客的图片。设置完后,点击左下角"Configure",然后等待Configure。,把搜索结果的Value勾选上。在search中搜索。

weixin_74239923的博客 842

SMARTY分页详解

使用SMARTY进行分页遇到问题的人们,将从这里学到如何更好的在SMARTY中进行分页....首先必需说明的是:这篇教程是我从别的教程改过来的,所以不能说是完全原创,但我把它说明的更加详细,以及提供了完备的示例..你将很清楚的理解里的每个变量的作用及其使用方法....希望这篇文字对对你产生帮助....如果,下面的文字真的对你产生了帮助,别忘了"呱唧呱唧"(鼓掌哦)!!! php requi

尚兴跃的备忘录 746

上海市大数据中心笔试模拟试卷

为帮助考生熟悉上海市大数据中心笔试的题型、考点及答题逻辑,以下整理了一份的模拟试卷,涵盖大数据专业知识、行政职业能力测试(行测)、公共基础知识(含上海本地政策)三大核心模块,并附详细答案解析。

一叶之秋的博客 1815

smarty下分页的简单实现

smarty下实现的分页,可以之间显示的页数范围可调($ShowPageNum)。 图片为该值设为2时的截图(设为2时,即显示当前页的前后两页的直接链接)。 php代码: <?php // 初始化相关,具体见官网实例: // http://www.smarty.net/docsv2/en/installing.smarty.extended.tpl require('setup

用心看,这个世界好奇妙,代码也很奇妙 5308

基于强化学习框架的交易策略学习过程

每个状态s∈S 是一个由六个微观结构特征构成的向量,这些特征反映了当前市场的订单簿状态和近期交易行为。

xu624735206的博客 1111

【电机驱动与运动控制】期末重点问题集合

问题1 梯形曲线和S形曲线各自的特点和区别,比较梯形和S形曲线位置、速度、加速度、加加速度的区别。 问题2 总惯量的计算包含哪几个部分? 哪几个部分需要进行折算? 在齿轮箱的输出侧(2号轴)总惯量需要折算到齿轮箱的输入侧(1号轴) 为什么需要折算? 齿轮箱比的存在使2号轴的转速和电机的转速不同 问题3 指出每个部分的名称。 每个部分的功能。 主磁极的励磁绕组:绝大部分直流电机都是由励磁绕组通以直流电建立主磁场; - 电枢铁心:在两个主磁极内表面之间,由硅钢片叠成的圆

【人工智障 | 计算鸡视觉 | 机器孩】 5703

jquery ajax smarty,Ajax+smarty技术实现无刷新分页

这里运用Smarty模板,更简单本文主要的技术:AJAX,PHP,Smarty,另外自己封装了一个很简单的类类:(function(){function $(id) {return document.getElementById(id);}$.init=function() {try{return new XMLHttpRequest();}catch(e){};try{return new Ac...

weixin_30349167的博客 374

【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)

初始环境安装。

废人一枚的博客 5084

应用smarty实现分页

应用smarty实现分页 建立数据库:        create database products,             CREATETABLEproduct(                      productidintNOTNULLAUTO_INCREMENT,                      namevarchar(50)NOTNULL,

云开月明 868

Graphviz安装及使用:决策树可视化

Python大数据分析与机器学习学习笔记 Graphviz安装及使用:决策树可视化

算法工程师 1万+

五万字解析【ROOT 入门指南】

本文是cern官方root入门指南的初步翻译版,还在进一步校对中....

荷塘阅色 208

php smarty 分页类,PHP学习:Smarty的分页实现_php

Smarty中的分页有很多方法。1。使用Smarty的分页插件,如Pager,pagnition,sliding_page等,不过感觉都不是太好,几乎都有一些Bug。有兴趣试用和自己去改进的朋友可以看看:http://smarty.php.net/contribs/plugins/view.php/function.pager.phphttp://www.phpinsider.com/smarty...

weixin_28842269的博客 223

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

php分页类smary,Smarty分页实现方法完整实例

本文实例讲述了Smarty分页实现方法。分享给大家供大家参考,具体如下:首先是PHP文件部分:require("include.php"); //包含smarty配置部分require 'conn.php'; //包含数据库配置部分$pagesize=10; //设置每页数据显示数量$url=$_SERVER['REQUEST_URI'];$url=parse_url($url);$url=$ur...

weixin_33162074的博客 339

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

php分页类smary,smarty简单分页的实现方法

本文实例讲述了smarty简单分页的实现方法,分享给大家供大家参考。具体实现方法如下:以下是模板中的smarty代码,用smarty简单的代入相关的变量就行了,非常简单,但是在php代码中还要传入page这个参数。我觉得这样分挺好,非常简单。我越来越喜欢用smarty了。Php代码如下:{if $pageCount > 1}{foreach item=i from=$pagerList}{...

weixin_35801828的博客 271

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: ADODB , ADODB_lite
下一篇: 排序算法五例
phpme
博客等级 码龄22年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值