jQuery分页类。。。

来源:互联网 发布:高频批量交易算法 编辑:程序博客网 时间:2024/05/17 02:09
        $pageScript = <<<SCR
        <script type='text/javascript'>
            function (){}
            $.ajax()
        </script>
SCR;
这种写法,在PHP中定义一段script函数,<<<SCR     SCR;是定界符。SCR是随便起的名字,但是定界符的后半截必须顶格写


$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首页');
sprintf函数,函数把格式化的字符串写写入一个变量中。也就是说最少要有一个站位字符和替换的变量。第一个参数为字符串,第二个参数就是第一个站位字符的值。。。。%s是指字符串,具体请看w3cschool的手册,直接搜索就有



<{config_load file="site.conf"}>
<script type="text/javascript" src="<{#js_path#}>jquery-1.4.2.min.js"></script>
在TPL中加载配置文件。。。读取配置文件中的函数   <{#js_path#}>

public function pageAction(){
    //命令模型层处理数据
    $page = isset($_REQUEST['page'])?$_REQUEST['page']:1;    //.....若有page的值,则$page=$_REQUEST['page'],没有则$page=1
    $pagesize = 2;                        //定义一页几条记录
    $offset = ($page-1)*$pagesize;                //计算出偏移量,偏移量是查询数据库是跳过的记录数
    $pageModel = new pageModel("localhost","root","","page");
    $array = $pageModel ->getPageList($offset,$pagesize);    //调用模型层,模型层返回了所有记录和总记录数
    $content = $array['list'];        
    $total = $array['total'];                      //将模型层返回的赋值给。。。。
    //命令视图层显示数据
    $this->smarty->assign('list',$content);            //赋值。。不解释
    $pageHelper = new pageHelper();                
    $page_html = $pageHelper ->show($total,$pagesize,$page);//调用pageHelper。这个下面细说。。。
    $this->smarty->assign('page_html',$page_html);       //将pageHelper()返回的东西,赋值给page_html。。。不解释
    $this->smarty->display('page.tpl');
}

细细的说下pageHelper.class.php

public function show($total,$pagesize,$page){
        $pages = ceil($total/$pagesize);
        $info = "总共".$total."条记录 分为".$pages."页 当前第".$page."页";
        
        $first = 1;
        $prev = $page-1;
        $next = $page+1;
        $last = $pages;

        $first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首页');
        $prev_html= '';
        if($page>1){
            $prev_html =  sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'上一页');
        }
        if($page<$pages){
            $prev_html =  sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'下一页');
        }
        //下拉列表项
        $select_html = "<select onchange='goPage(this.value)'>";
        for($i=1;$i<=$pages;$i++){
            if($i==$page){
                $select_html .= sprintf("<option value='%s' selected>%s</option>",$i,$i);
            }else{
                $select_html .= sprintf("<option value='%s'>%s</option>",$i,$i);
            }
        }
        $select_html .="</select>";
        $last_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$last,'尾页');
        $pageScript = <<<SCR
SCR;
        return $info.'&nbsp;'.$first_html.'&nbsp;'.$prev_html.'&nbsp;'.$next_html.'&nbsp;'.$last_html.'&nbsp;'.$pageScript.'&nbsp;'.$select_page.'&nbsp;'.$select_html;
    }

一点一点看。开始的几个值是从调用函数的时候从函数参数传过来的,$info没啥说的,
下面定义的四个变量是用来区别显示首页,尾页下一页上一页的。。。这个没啥技术含量。想得到就很简单。
那四个变量只是四个页码。要让他可以点还要把它变成连接,所以。。。就有后面这几部了。sprintf()函数,上面说了。至于if括号里的,是保证在第一页的时候不显示首页,。。。之类的。。。。手懒,见谅。哦对了。。。还有<a href='javascript:goPage(%s)'>%s</a>这种写法。。。记住就行了。。。貌似没啥为什么

下拉列表部分:+=的部分知道吧。在PHP中连接符不是+是.所以+=在php中是.=。。。循环通过总页数来输出<option></option>的个数。代码看着抽象,其实最后输出的就是一个下拉菜单。之所以这么麻烦是因为菜单里的值都不是写死的。还有在<select>标签中绑定了一个goPage函数,下面定义的

$pageScript是定义了一个script函数。。。
最后给调用它的控制器,返回一个长长的字符串。。。。。把前面所有的都返回了。至于那个script函数,返回之后再tpl文件中一输出直接就变成函数了
原创粉丝点击