<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>';
?>