Jquery实现的翻页功能(在mvc中实现的)

本文介绍了一个简单的PHP分页功能实现方案,包括模型层获取数据、控制器处理请求及辅助类生成分页链接等步骤。该方案使用了AJAX进行异步加载,实现了平滑的页面切换效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、这是page.tpl中的文件

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<div id="list_div" style="margin:auto;width:500px">
<table align="center">
    <{foreach from=$list item='value'}>
    <tr>
    <td><{$value.name}></td><td><{$value.author}></td><td><{$value.price}></td>
    </tr>
    <{/foreach}>
</table>
<{$page_html}>

</div>

2、这是pageHelper

<?php
class pageHelper{
    //这个方法的作用是根据参数,返回字符串
    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){
            $next_html =  sprintf("<a href='javascript:goPage(%s)'>%s</a>",$next,'下一页');
        }
        //下拉列表项
        $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
        <script type='text/javascript'>
            function goPage(page){
                $.ajax({
                    url:"index.php?c=page&a=page",
                    type:'POST',
                    data:"page="+page,
                    dataType:'text',
                    cache:false,
                    async:true,
                    success:function(data){
                        $("#list_div").html(data);
                    },
                    error:function(xhr,errMsg){
                        alert(errMsg);
                    }
                });
            }
        </script>
SCR;
        return $info.'&nbsp;'.$first_html.'&nbsp;'.$prev_html.'&nbsp;'.$next_html.'&nbsp;'.$last_html.'&nbsp;'.$pageScript.'&nbsp;'.$select_page.'&nbsp;'.$select_html;
    }

}

3、这是model中的文件

<?php
class pageModel extends baseModel{
    public function getPageList($offset,$pagesize){
        $sql = "select * from book limit $offset,$pagesize";
        $result = $this -> getAll($sql);
        $sql = "select count(*) from book";
        $total = $this ->getOne($sql);
        return array('list'=>$result,'total'=>$total);
    }

}

4、这是controller下的page.class.php文件

<?php
class pageController extends baseController{
    public function pageAction(){
        //命令模型层处理数据
        $page = isset($_REQUEST['page'])?$_REQUEST['page']:1;
        $pagesize = 2;
        $offset = ($page-1)*$pagesize;
        $pageModel = new pageModel("localhost","root","123","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);
        $this->smarty->assign('page_html',$page_html);
        $this->smarty->display('page.tpl');
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值