- 论坛徽章:
- 0
|
1.生成xml部分,文件为content.php,其中mysqlclass.inc.php为自己写的mysql简单操作类,pageclass.inc.php为自己写的分页类。
connect();
$mysql->query("select * from ft_products where lineid is not null");
$total=$mysql->recordcount();
if (empty($_GET["page"])) {$currpage = 1;}
else {$currpage = intval($_GET["page"]);}
$pagesize = 10;
$pageclass = new page($total,$currpage,$pagesize);
$nav = $pageclass->get_page_nav();
$descible = $pageclass->get_page_desible();
$first = $pageclass->get_page_first();
$next = $pageclass->get_page_next();
$prev = $pageclass->get_page_prev();
$last = $pageclass->get_page_last();
$recordstart = ($currpage - 1) * $pagesize;
$sql = "select lineid,itemno,catalog,name,canview,imagename,descible from ft_products where lineid is not null order by lineid desc limit $recordstart,$pagesize";
$mysql->query($sql);
$xmlstr ='';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= '';
$xmlstr .= 'Lineid';
$xmlstr .= 'Itemno';
$xmlstr .= 'Name';
$xmlstr .= 'catalog';
$xmlstr .= 'descible';
$xmlstr .= '';
while ($row = $mysql->nextrow()) {
$xmlstr .= '';
$xmlstr .= '' . $row['lineid'] . '';
$xmlstr .= '' . $row['itemno'] . '';
$xmlstr .= '' . $row['name'] . '';
$xmlstr .= '' . $row['catalog'] . '';
$xmlstr .= '' . substr($row['descible'],0,50) . '';
$xmlstr .= '';
}
$xmlstr .= '';
$xmlstr .= ']]>';
$xmlstr .= '';
$xmlstr .= '';
header('content-type:text/xml;charset=utf-8');
echo($xmlstr);?>
2.分页类部分pageclass.inc.php
total = $total;
$this->page = $page;
$this->pagesize = $pagesize;
$this->url = $url;
$this->firstp = "";
$this->nextp = "";
$this->prevp = "";
$this->lastp = "";
$this->navop = "";
}
function get_page_desible() {// 附加页面信息
return $this->navop;
}
function get_page_first() {//第一页
return $this->firstp;
}
function get_page_next() {//后一页
return $this->nextp;
}
function get_page_prev() {//前一页
return $this->prevp;
}
function get_page_last() {//尾页
return $this->lastp;
}
function get_page_nav() {//取得url中的查询字串
if (empty($this->url))
{$this->url=$_SERVER['REQUEST_URI'];}
$parse_url = parse_url($this->url);
$url_query = $parse_url["query"]; //得到查询部分
$currpath = $_SERVER["PHP_SELF"];
$url_query = eregi_replace("(page|&page)=$this->page","",$url_query);
$pagenum = (int) ceil($this->total / $this->pagesize); //总页数,也是最后一页数
$firstpage = 1; //第一页为1
$currpage = $this->page;
$lastpage = $pagenum ; //最后一页依总页数而定,如果总页数为0,则最后一页也为零,否则最后一面为总页数值
$prevpage = ($currpage - 1 > 0 ? $currpage - 1 : 1); //如果当前页减小于或等于0时,那取$page值,$page可能取值为0
$nextpage = ($currpage + 1 > $lastpage ? $currpage : $currpage + 1); //如果当前页加1大于总页数,则取当前页数值
$nav = " $currpage of $pagenum pages "; //总页数中的第几页
$nav .= "Show $this->pagesize records a page "; //每一页显示记录数
$nav .= "Total: $this->total records
"; //总共记录数
$this->navop = $nav;
if (substr($url_query,0,1)=="&") {
$nav .= "First |"; //首页
$nav .= "Next |"; //下一页
$nav .= "Prev |"; //前一页
$nav .= "Last"; //尾页
$this->firstp = "$currpath" . "?page=$firstpage" . $url_query;
$this->nextp = "$currpath" . "?page=$nextpage" . $url_query;
$this->prevp = "$currpath" . "?page=$prevpage" . $url_query;
$this->lastp = "$currpath" . "?page=$lastpage" . $url_query;
} else {
$nav .= "First |"; //首页
$nav .= "Next |"; //下一页
$nav .= "Prev |"; //前一页
$nav .= "Last"; //尾页
$this->firstp = "$currpath" . "?" . $url_query . "&page=$firstpage";
$this->nextp = "$currpath" . "?" . $url_query . "&page=$nextpage";
$this->prevp = "$currpath" . "?" . $url_query . "&page=$prevpage";
$this->lastp = "$currpath" . "?" . $url_query . "&page=$lastpage";
}
return $nav;
}
}?>
3.前台页台调用程序pagebyajax.html
无标题文档
//begin initajax()
function Initajax()
{
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
ajax = false;
}
}
if (!ajax && typeof(XMLHttpRequest)!='undefined') {
ajax = new XMLHttpRequest();
if (ajax.overrideMimeType) {
ajax.overrideMimeType("text/xml");
}
}
return ajax;
} //end initajax()
//create document
function createdocument(handle,xmlstr) {
if(document.implementation&&document.implementation.createDocument) {
var xmldoc = document.implementation.createDocument("", "", null);
/*
xmldoc.prototype.loadXML = function(xmlstr) {
alert(childNodes.length);
var childNodes = this.childNodes;
for (var i = childNodes.length - 1; i >= 0; i--)
{this.removeChild(childNodes);}
var dp = new DOMParser();
var newDOM = dp.parseFromString(xmlstr, "text/xml");
var newElt = this.importNode(newDOM.documentElement, true);
this.appendChild(newElt);
}
xmldoc.loadXML(xmlstr); //Firefox下不支持loadXML方法
*/
}
else if(window.ActiveXObject) {
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.onreadystatechange = function() {
if(xmldoc.readyState == 4) {
handle(xmldoc, xmlstr);
}
}
xmldoc.loadXML(xmlstr);
}
}
//begin setcontent()
function setcontent(xmldoc) {
document.getElementById("divdescible").innerHTML = xmldoc.getElementsByTagName("descible")[0].firstChild.data;
var btnfirst = document.getElementById("btnfirst");
btnfirst.onclick = function() {
send_request(xmldoc.getElementsByTagName("first")[0].firstChild.data);
}
var btnnext = document.getElementById("btnnext");
btnnext.onclick = function() {
send_request(xmldoc.getElementsByTagName("next")[0].firstChild.data);
}
var btnprev = document.getElementById("btnprev");
btnprev.onclick = function() {
send_request(xmldoc.getElementsByTagName("prev")[0].firstChild.data);
}
var btnlast = document.getElementById("btnlast");
btnlast.onclick = function() {
send_request(xmldoc.getElementsByTagName("last")[0].firstChild.data);
}
document.getElementById("content").innerHTML = xmldoc.getElementsByTagName("content")[0].firstChild.data;
}//end setcontent()
//begin send_request()
function send_request(url) {
var request = new Initajax();
if (!request) {
window.alert("不能创建XMLHttpRequest对象实例");
return false;
}
request.open("GET",url,true);
request.onreadystatechange = function() {
if (request.readyState==4 ) {
if (request.status==200) {
var xmldom = request.responseXML.documentElement;
setcontent(xmldom);
} else {
alert("您请求的页面有异常");
}
}
}
request.send(null);
} //end send_request
请稍候,正在装载数据....
运行画面如下:
![]()
![]()
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/23633/showart_205399.html |
|