当前位置:编程学习 > php >>

php+ajax分页代码

<html>
<head>
<script language="javascript">
function createXMLHttp(){
    if(window.ActiveXObject){
        return new ActiveXObject("Microsoft.XMLHttp");
    }
    else if(window.XMLHttpRequest){
        return new XMLHttpRequest();
    }
}

function Pager(){
    var that=this;

    this.link=function(url){
        that.xmlHttp = createXMLHttp();
        that.xmlHttp.onreadystatechange = that.receive;
        that.xmlHttp.open("GET", url, true);
        that.xmlHttp.send(null);
    }

    this.receive=function(){
        if((that.xmlHttp.readyState == 4)){
            if(that.xmlHttp.status == 200){
                that.reaction(that.xmlHttp.responseXML);
            }else{
                that.recover();
            }
        }
    }
}
</script>
</head>
<body>
<div id='page_content'></div>
<div id='page_bar'></div>
<script language="javascript">
var a = new Pager();
var pages = 0;

a.recover = function (){
    go = function (u){
        go = function (){
        };
        a.link(u);
    };
};

a.reaction = function (xml){
    document.getElementById('page_content').innerHTML = xml.getElementsByTagName('content')[0].childNodes[0].nodeValue;

    if(xml.getElementsByTagName('count')[0].childNodes[0].nodeValue != pages){
        s = '<table><tr>';
        for(i = 1; i <= xml.getElementsByTagName('count')[0].childNodes[0].nodeValue; i++)
        {
            if(i == xml.getElementsByTagName('current')[0].childNodes[0].nodeValue)
                s += '<td><b>' + i + '</b></td>';
            else
                s += '<td><a href="javascript:go(\'page.php?page=' + i + '\')">' + i + '</a></td>';
        }
        s += '</tr></table>';
   
        document.getElementById('page_bar').innerHTML = s;
    }

    a.recover();
}


a.link('page.php');
</script>
</body>
</html>

 page.php代码.

<?php
class class_page
{
    private $record_count, $perpage;
    private $page_count, $page_current;
   
    function __construct($perpage, $record_count, $page_current)
    {
        $this->perpage = $perpage;
        $this->record_count = $record_count;
        $this->page_count = ($record_count == 0) ? 1 : ceil($record_count / $perpage);
        $this->page_current = ($page_current > $this->page_count) ? 1 : $page_current;
    }

    function __get($name)
    {
        switch($name)
        {
        case 'page_count':
            return $this->page_count;
        case 'page_current':
            return $this->page_current;
        case 'record_start':
            return ($this->page_current - 1) * $this->perpage;
        }
    }
}

header('Content-Type: text/xml; charset=gbk');
$page = new class_page(20, 150, is_numeric($_GET['page']) ? $_GET['page'] : 1);
echo '<?xml version="1.0"?>';
echo '<page>';
echo '<count>' . $page->page_count . '</count>';
echo '<current>' . $page->page_current . '</current>';
echo '<content>' . pow($page->page_current, 2) . '</content>';
echo '</page>';
?>

补充:Php教程,Php常用代码
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,