仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5156|回复: 20
打印 上一主题 下一主题

[学习教程] PHP编程:PHP进修:Smarty的分页完成

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:57:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
当然你可以把你最基本的功能放出来的时候就放出来,比如放到论坛上,让大家都参与,     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");        
?>开发相册系统过程中就有过这样的问题,因为没有交流好,出现重复工作问题,因为文档没有详细的说明而经常临时问对方。
若相依 该用户已被删除
沙发
发表于 2015-2-4 07:41:07 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
爱飞 该用户已被删除
板凳
发表于 2015-2-7 19:24:45 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
谁可相欹 该用户已被删除
地板
发表于 2015-2-11 00:25:16 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
admin 该用户已被删除
5#
发表于 2015-2-25 06:58:29 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
6#
发表于 2015-3-6 08:06:53 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
小魔女 该用户已被删除
7#
发表于 2015-3-6 09:18:00 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
再现理想 该用户已被删除
8#
发表于 2015-3-6 20:57:39 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
老尸 该用户已被删除
9#
发表于 2015-3-8 13:30:53 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
简单生活 该用户已被删除
10#
发表于 2015-3-14 01:27:01 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
乐观 该用户已被删除
11#
 楼主| 发表于 2015-3-17 21:00:55 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
只想知道 该用户已被删除
12#
发表于 2015-3-19 01:29:05 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
飘飘悠悠 该用户已被删除
13#
发表于 2015-3-24 23:55:52 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
小女巫 该用户已被删除
14#
发表于 2015-3-30 13:43:18 | 只看该作者
当然这种网站的会员费就几十块钱。
深爱那片海 该用户已被删除
15#
发表于 2015-4-2 22:40:39 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
蒙在股里 该用户已被删除
16#
发表于 2015-4-3 20:50:49 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
第二个灵魂 该用户已被删除
17#
发表于 2015-4-26 06:11:42 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
金色的骷髅 该用户已被删除
18#
发表于 2015-4-27 17:43:35 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
精灵巫婆 该用户已被删除
19#
发表于 2015-5-4 16:38:15 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
不帅 该用户已被删除
20#
发表于 2015-5-12 08:17:38 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 00:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表