加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php如何实现分页功能 - PHP教程

发布时间:2014-12-04 23:34:10 所属栏目:PHP教程 来源:站长网
导读:上星期工作中,遇到要处理一段分页的代码!以前是写的很熟练的,可能是懒散的太久了!感觉忘的差不多了。 有的知识就是太久不用也会忘记的很快啊!所以经常复习
上星期工作中,遇到要处理一段分页的代码!以前是写的很熟练的,可能是懒散的太久了!感觉忘的差不多了。

有的知识就是太久不用也会忘记的很快啊!所以经常复习一下以前的知识也是很重要的。所以特地整理出一下分页代码!

效果如上图;在发表框点一下弹出一个框,首先判断用户是否登录,没有登录就弹出登录框,已登录就弹出输入框,输入留言内容,姓名和手机号。

当你输入好内容后会在下面显示你的留言内容,前三个为用户最新的留言排序,从第四个起按点赞的数量进行排序。

<!--视图层-->    
<?php    
$pageIndex = isset($_GET['p'])?$_GET['p']:0;    
echo "<script type="text/javascript">var pageindex=".$pageIndex." </script>";    
?>    
<script type="text/javascript" src="/jquery.js"></script>    
<script type="text/javascript">    
function loadMore(){           
        pageindex = pageindex || 0;    
        $.ajax({    
            url:'http://www.*****.com/****/wishingwall?pageindex='+pageindex+'&callback=?',    
            type:'GET',    
            dataType:'jsonp',    
            success:function(d){    
                if(d.code == 200){    
                    if(d.font == ''){    
                        return;    
                    }else{    
                        var _html = '';    
                        if (pageindex == 0) {    
                            var _len=0;                             
                            if(d.font.length>3){                                 
                                _len=4;    
                            }else{    
                                _len=d.font.length;    
                            }    
                            for(var j = 0; j<_len; j++){    
                                var _d = d.font;    
                                _html += '<div class="wallCenter" ><div class="items"><div class="style'+random(1, 5)+'">';    
                                _html += '<div class="content">' +_d[j].content +'</div><span class="jianjue"></span><p class="author">';    
                                _html += '<span class="zanImg" style="cursor:pointer"></span><span class="username">' +_d[j].username + '</span>';    
                                _html += '<span class="zanColor">(<span id="'+_d[j].id+'" class="praisenumer'+_d[j].id+'">' +_d[j].praisenumer +'</span>赞)</span></p></div></div></div>';                       
                            }    
                        }    
                        if(d.data != '') {    
                            var _len=0;                             
                            if(d.data.length>5 && pageindex==0){                                 
                                _len=5;    
                            }else{    
                                _len=8;    
                            }    
                            for(var j = 0; j<_len; j++){    
                                var _s = d.data;    
                                _html += '<div class="wallCenter" ><div class="items"><div class="style'+random(1, 5)+'">';    
                                _html += '<div class="content">' +_s[j].content +'</div><span class="jianjue"></span><p class="author">';    
                                _html += '<span class="zanImg" style="cursor:pointer"></span><span class="username">' +_s[j].username + '</span>';    
                                _html += '<span class="zanColor">(<span id="'+_s[j].id+'" class="praisenumer'+_s[j].id+'">' +_s[j].praisenumer +'</span>赞)</span></p></div></div></div>';                       
                            }    
                        }                                                                   
                        $(".wallWrap").text('');         <!--把留言写入-->                   
                        $(".wallWrap").html(_html).masonry({itemSelector: '.wallCenter'});      
                        var numberthis = parseInt(d.page) + 1;    
                        thisPage(d.count, numberthis);                          
                        $(".zanImg").each(function(index, elm){    
                            var $elm = $(elm);    
                            $elm.click(function(){    
                                var thisid = $elm.parent('p').find('span.zanColor span').attr('id');    
                                $.ajax({    
                                    url:'http://www.*****.com/****/addpraisenumer/'+thisid+'?callback=?',    
                                    type:'GET',    
                                    dataType:'jsonp',    
                                    success:function(d){                                                                                
                                        if(d.code == 200){                                                  
                                            $(".praisenumer"+thisid).text(d.praisenumer);    
                                        } else {    
                                            return;    
                                        }    
                                    }    
                                });    
                            })    
                        })    
                                
                    }    
                }else{    
                    return;     
                }       
            }       
        });     
}    
function thisPage(count, curPage) {    
    count = count || 1;    
    count = Number(count); <!--定义记录数-->                          
    curPage = curPage || 1;    
    curPage = Number(curPage);  <!--当前页-->  
    var per = 8;              
    per = Number(per);    
    var showPages = 0;    
    showPages = Number(showPages);    
    var showEnd = 0;    
    showEnd = Number(showEnd);    
    if (count%per > 0) {        <!--定义总的页数-->  
        var pages = (parseInt(count/per) + 1);    
    } else {    
        var pages = parseInt(count/per);    
    }    
    var str = '<span class="loadPage">'+curPage+'/'+ pages +' 页</span>';    
    str += '<span class="totalPage"> 共 '+ pages +' 页</span>'  
    if(curPage != 1){    
       str += '<span class="firstPage" data-page="1"><a href="http://*****.*****.com/thanksgiving?p=0#content">首页</a></span>'  
    }    
    if(curPage - 1 > 0){    
       str += '<span class="prevPage" data-page="'+(curPage-1)+'"><a href="http://*****.*****.com/thanksgiving?p='+ (curPage-2) +'#content">上一页</a></span>'  
    }
//URL:http://www.bianceng.cn/webkf/PHP/201410/45955.htm
    if(pages <= 5){    
     showPages = 1;    
     showEnd = pages;    
    }else if(pages - curPage >= 4){    
     showPages = curPage;    
     showEnd = curPage+4;    
    }else if(pages - curPage < 4){    
     showPages = pages - 4;    
     showEnd = pages;    
    }    
    for(var i=showPages; i<=showEnd; i++){    
     if( i == curPage){    
        str += '<a class="page_trigger page_cur" data-page="'+i+'" onclick="javascript:;">'+ i +'</a>'   
     }else{    
        str += '<a class="page_trigger"  data-page="'+i+'" href="http://*****.*****.com/thanksgiving?p='+(i-1)+'#content">'+ i +'</a>'   
     }    
    }    
    if(curPage + 1 <= pages){    
       str += '</span><span class="nextPage" data-page="'+(curPage+1)+'"><a href="http://*****.*****.com/thanksgiving?p='+ curPage +'#content">下一页</a></span>';    
    }    
    if(curPage!=pages){    
       str += '<span class="lastPage" data-page="'+pages+'"><a href="http://*****.*****.com/thanksgiving?p='+ (pages-1) +'#content">尾页</a></span>';    
    }           
    $('.page_box').eq(0).html(str);}    
        
</script>
<!--控制层-->  
<?php  
    // 留言板显示  
    public function action_wishingwall()  
    {  
        header('Content-Type: application/x-javascript');  
        $callback = isset( $_GET[ 'callback' ] ) ? $_GET[ 'callback' ] : 'callback';  
        $pageIndex = Arr::get($_GET, 'pageindex', 0);  
        $offset = 0;  
        try {  
      
            $font = DB::select('id', 'content', 'username', 'phone', 'userid', 'usernumber',  
                'praisenumer', 'modefied', 'created')  
                ->from('tmp_***')  
                ->order_by('praisenumer', 'desc')  
                ->limit(3)  
                ->fetch_all();     //根据点赞倒序查询  
            $list = ' (';  
            foreach($font as $v) {  
                $list.= $v['id'].',';  
            }  
            $list.='0)';  
            $pageSize = 8;  
            if($pageIndex == 0) {  
                $pageSize = 8;  
            } else {  
                $offset = 8+($pageIndex-1)*8;  
            }  
                  
            $rows = DB::select('id', 'content', 'username', 'phone', 'userid', 'usernumber',  
                'praisenumer', 'modefied', 'created')  
                ->from('tmp_*****')  
                ->where('id', DB::expr('not in'), DB::expr($list))  
                ->order_by('created', 'desc')  
                ->limit($pageSize)  
                ->offset($offset)  
                ->fetch_all();   //根据时间倒序查询  
            $count = DB::select('id')  
                ->from('tmp_*****')  
                ->count_all();  
            $data = array(  
                'code'  => 200,  
                'msg'   => 'Success',  
                'page'  => $pageIndex,  
                'count' => $count,  
                'font'  => $font,  
                'data'  => $rows,  
            );  
        } catch (Exception $e) {  
            $data = array(  
                'code'  => 3000003,  
                'msg'   => '查询异常',  
                'data'  => $rows,  
            );  
        }  
        echo $callback.'('.json_encode($data).')';  
        exit;  
    }  
          
          
    // 点赞加  
    public function action_addpraisenumer($id)  
    {  
        header('Content-Type: application/x-javascript');  
        $callback = isset( $_GET[ 'callback' ] ) ? $_GET[ 'callback' ] : 'callback';  
        if (isset($id) && $id) {  
            // 得到系统唯一session_id  
            $session_id = session_id();  
            $result = array(1, time());  
            if (!$this->cacheFilter($session_id, "praise", $result, 10)) {  
                $data = array(  
                    'code'  => 3000004,  
                    'msg'   => '10秒之内无法重复提交',  
                );  
            } else {  
                DB::update('tmp_*****')  
                    ->set(array('praisenumer' => DB::expr(' praisenumer+1 ')))  
                    ->where('id', '=', $id)  
                    ->execute();  
                $praisenumer = DB::select('praisenumer')  
                    ->from('tmp_*****')  
                    ->where('id', '=', $id)  
                    ->fetch_one();  
                $data = array(  
                    'code'  => 200,  
                    'praisenumer' => $praisenumer,  
                    'msg'   => '成功',  
                );  
            }  
        } else {  
            $data = array(  
                'code'  => 3000003,  
                'msg'   => '非法的操作',  
            );  
        }  
        echo $callback.'('.json_encode($data).')';  
        exit;  
    }     
          
          
          
          
          
          
        // 新增留言板  
    public function action_addwishingwall()  
    {  
        header('Content-Type: application/x-javascript');  
        $callback = isset( $_GET[ 'callback' ] ) ? $_GET[ 'callback' ] : 'callback';  
        $content = Arr::get($_GET, 'content', '');  
        $username = Arr::get($_GET, 'username', '');  
        $phone = Arr::get($_GET, 'phone', '');  
        if (empty($content)) {  
            $data = array(  
                'code'  => 3000001,  
                'msg'   => '留言内容不能为空',  
            );  
        } else {  
            $data = array(  
                'content' => $content,  
                'username' => $username,  
                'phone' => $phone,  
                'praisenumer' => 0,  
                'modefied' => time(),  
                'created' => time()  
            );  
            try {  
                DB::insert('tmp_*****', array_keys($data))  
                    ->values(array_values($data))  
                    ->execute();  
                $data = array(  
                    'code'  => 200,  
                    'msg'   => '成功',  
                );    
            } catch (Exception $e) {  
                $data = array(  
                    'code'  => 3000002,  
                    'msg'   => '新增失败',  
                );  
            }  
        }  
        echo $callback.'('.json_encode($data).')';  
        exit;  
    }  
    ?>

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读