xml+php动态载入与分页
转自:动态网制作指南 www.knowsky.com
这是在看太平洋网的评论时看到的,太平洋网是用jsp做为后台语言,用来产生xml文件.然后在把数据绑定到html上的.我就用php也做了一个以下是源文件.
-----------------
xml
.
htm
------------------
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " " http://www.w3.org/TR/html4/loose.dtd " >
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=gb2312 " >
< title > xml </ title >
</ head >
< body >
< xml id = " ShopList " src = " xml.php " ></ xml >
< script >
function jump(form)
{
if (form . pageNum . value > parseInt(pageCount . innerHTML)) return false ;
if (form . pageSize . value > parseInt(recordCount . innerHTML)) return false ;
ShopList . src = " xml.php?pageNo= " + form . pageNum . value + " &pageSize= " + form . pageSize . value + " &time= " + ( new Date ()) . getTime();
}
function pageCount_onpropertychange(form)
{
if (form . pageNum . value > parseInt(pageCount . innerHTML)) form . pageNum . value = parseInt(pageCount . innerHTML);
if (form . pageSize . value > parseInt(recordCount . innerHTML)) form . pageSize . value = parseInt(recordCount . innerHTML);
if (form . pageNum . value == 1 )
{
form . firstPage . disabled = true ;
form . previousPage . disabled = true ;
}
else
{
form . firstPage . disabled = false ;
form . previousPage . disabled = false ;
}
if (form . pageNum . value == form . pageCount . value)
{
form . nextPage . disabled = true ;
form . lastPage . disabled = true ;
}
else
{
form . nextPage . disabled = false ;
form . lastPage . disabled = false ;
}
}
</ script >
< table width = " 100% " height = " 25 " border = " 0 " cellpadding = " 2 " cellspacing = " 1 " id = " shopTbl " datasrc = # ShopList datafld=商铺>
< thead >
< tr >
< td height = " 25 " colspan = " 4 " >< span class = " shop_3d_text " > 店铺列表 </ span ></ td >
</ tr >
< tr >
< td width = " 30% " > 商铺名称 </ td >
< td width = " 20% " > 经营者 </ td >
< td width = " 20% " > 店铺级别 </ td >
< td width = " 30% " > 店铺简介 </ td >
</ tr >
</ thead >
< tbody >
< tr STYLE = " background-color:expression(rowIndex%2==1?'#EFEFEF':'#FFFFFF') " >
< td >< a datafld = " 连接地址 " >< span datafld = " 名称 " > 名称 </ span ></ a ></ td >
< td >< span datafld = " 经营人 " > 经营人 </ span ></ td >
< td >< span datafld = " 级别 " > 级别 </ span ></ td >
< td >< span datafld = " 简介 " > 简介 </ span ></ td >
</ tr >
</ tbody >
</ table >
< form return onsubmit = " jump(this);return false " >
< div align = " right " >
每页显示
< input name = pageSize datasrc = # ShopList datafld=页大小 size=2>条,
< input type = submit value = "" style = " width:0 " >
共 < span id = " pageCount " datasrc = # ShopList datafld=页数量></span>页
< span id = " recordCount " datasrc = # ShopList datafld=数量 ></span>条
< input name = firstPage type = submit value = 首页 onclick = " pageNum.value=1 " >
< input name = previousPage type = submit value = 上页 onclick = " pageNum.value=pageNum.value-1 " >
第 < input name = pageNum datasrc = # ShopList datafld=页号码 size=2>页
< input name = nextPage type = submit value = 下页 onclick = " pageNum.value=(pageNum.value-0)+1 " >
< input name = lastPage type = submit value = 尾页 onclick = " pageNum.value=pageCount.value " >
< input name = pageCount type = hidden datasrc = # ShopList datafld=页数量 onpropertychange="pageCount_onpropertychange(form)">
</ div > </ form >
</ body >
</ html >
----------------- xml . php ------------------
<? php
// require_once "Source/Global.php";
function getVars( $get_vars , $post_vars ) {
$i = count ( $get_vars );
$j = count ( $post_vars );
if ( $i > 0 && $j > 0 ) {
while ( list ( $key , $val ) = each ( $get_vars )) {
$Vars [ $key ] = $val ;
}
while ( list ( $key2 , $val2 ) = each ( $post_vars )) {
$Vars [ $key2 ] = $val2 ;
}
} elseif ( $i > 0 ) {
while ( list ( $key , $val ) = each ( $get_vars )) {
$Vars [ $key ] = $val ;
}
} elseif ( $j > 0 ) {
while ( list ( $key2 , $val2 ) = each ( $post_vars )) {
$Vars [ $key2 ] = $val2 ;
}
} else {
$Vars = array ();
}
return $Vars ;
}
$vars = getVars( $HTTP_GET_VARS , $HTTP_POST_VARS );
// class shoplist_res extends iGlobal{
class shoplist_res{
function shoplist_res( $vars , $cookie ){
// $this->iGlobal($vars,$cookie);
$this -> outPut( $vars , $cookie );
}
// function _shoplist_res(){
// $this->db->Close();
//}
function outPut( $vars , $cookie ){
/* $strQuery = "select count(*) as rc from ".$this->db_c->Db_Pre."pshop order by id desc";
$this->db->Query($strQuery);
$RecordCount = $this->db->Assoc();
$RecordCount = $RecordCount['rc'];
@$this->db->freeResult(); */
$RecordCount = 25 ;
if ( empty ( $vars [ ' pageNo ' ])) $vars [ ' pageNo ' ] = 1 ;
if ( empty ( $vars [ ' pageSize ' ])) $vars [ ' pageSize ' ] = 10 ;
$PageCount = ceil ( $RecordCount / $vars [ ' pageSize ' ]);
if ( $vars [ ' pageSize ' ] > $RecordCount ) $vars [ ' pageSize ' ] = $RecordCount ;
if ( $vars [ ' pageNo ' ] > $PageCount ) $vars [ ' pageNo ' ] = $PageCount ;
$xmlStr .= " <?xml version="1.0" encoding="GBK" ?> " . " " ;
$xmlStr .= " <商铺列表> " . " " ;
$xmlStr .= " <翻页工具 pageNo=" " . $vars [ ' pageNo ' ] . " " pageSize=" " . $vars [ ' pageSize ' ] . " " total=" " . $RecordCount . " "></翻页工具> " . " " ;
$xmlStr .= " <页号码> " . $vars [ ' pageNo ' ] . " </页号码> " . " " ;
$xmlStr .= " <页大小> " . $vars [ ' pageSize ' ] . " </页大小> " . " " ;
$xmlStr .= " <数量> " . $RecordCount . " </数量> " . " " ;
$xmlStr .= " <页数量> " . $PageCount . " </页数量> " . " " ;
// $strQuery = "select t1.*,t2.* from ".$this->db_c->Db_Pre."pshop as t1,".$this->db_c->Db_Pre."shoptype as t2 where t1.typenum=t2.typenum order by id desc "
// ."limit ".($vars['pageNo']-1)*$vars['pageSize'].",".$vars['pageSize'];
//die($strQuery);
//$this->db->Query($strQuery);
/* while($result = $this->db->Assoc()){
$xmlStr.= " "." ";
$xmlStr.= " <商铺>"." ";
$xmlStr.= " <名称><![CDATA[".$result['shopname']."]]></名称>"." ";
$xmlStr.= " <经营人><![CDATA[".$result['shopmaster']."]]></经营人>"." ";
$xmlStr.= " <级别><![CDATA[".$result['shoptype']."]]></级别>"." ";
$xmlStr.= " <简介><![CDATA[".$result['shopintro']."]]></简介>"." ";
$xmlStr.= " <连接地址><![CDATA[personal_shop.php?id=".$result['id']."]]></连接地址>"." ";
$xmlStr.= " </商铺>"." ";
} */
$sc = $vars [ ' pageNo ' ] * $vars [ ' pageSize ' ];
if ( $sc > $RecordCount ) $sc = $RecordCount ;
for ( $i = ( $vars [ ' pageNo ' ] - 1 ) * $vars [ ' pageSize ' ]; $i < $sc ; $i ++ ){
$xmlStr .= " " . " " ;
$xmlStr .= " <商铺> " . " " ;
$xmlStr .= " <名称><![CDATA[这是名称: " . $i . " ]]></名称> " . " " ;
$xmlStr .= " <经营人><![CDATA[这是经营人: " . $i . " ]]></经营人> " . " " ;
$xmlStr .= " <级别><![CDATA[这是级别: " . $i . " ]]></级别> " . " " ;
$xmlStr .= " <简介><![CDATA[这是简介: " . $i . " ]]></简介> " . " " ;
$xmlStr .= " <连接地址><![CDATA[personal_shop.php?id= " . $i . " ]]></连接地址> " . " " ;
$xmlStr .= " </商铺> " . " " ;
}
$xmlStr .= " </商铺列表> " . " " ;
header ( " Content-type: text/xml " );
echo $xmlStr ;
}
}
$shoplist = new shoplist_res( $vars , $HTTP_COOKIE_VARS );
// $shoplist->_shoplist_res();
unset ( $sthoplist );
?>
<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN " " http://www.w3.org/TR/html4/loose.dtd " >
< html >
< head >
< meta http - equiv = " Content-Type " content = " text/html; charset=gb2312 " >
< title > xml </ title >
</ head >
< body >
< xml id = " ShopList " src = " xml.php " ></ xml >
< script >
function jump(form)
{
if (form . pageNum . value > parseInt(pageCount . innerHTML)) return false ;
if (form . pageSize . value > parseInt(recordCount . innerHTML)) return false ;
ShopList . src = " xml.php?pageNo= " + form . pageNum . value + " &pageSize= " + form . pageSize . value + " &time= " + ( new Date ()) . getTime();
}
function pageCount_onpropertychange(form)
{
if (form . pageNum . value > parseInt(pageCount . innerHTML)) form . pageNum . value = parseInt(pageCount . innerHTML);
if (form . pageSize . value > parseInt(recordCount . innerHTML)) form . pageSize . value = parseInt(recordCount . innerHTML);
if (form . pageNum . value == 1 )
{
form . firstPage . disabled = true ;
form . previousPage . disabled = true ;
}
else
{
form . firstPage . disabled = false ;
form . previousPage . disabled = false ;
}
if (form . pageNum . value == form . pageCount . value)
{
form . nextPage . disabled = true ;
form . lastPage . disabled = true ;
}
else
{
form . nextPage . disabled = false ;
form . lastPage . disabled = false ;
}
}
</ script >
< table width = " 100% " height = " 25 " border = " 0 " cellpadding = " 2 " cellspacing = " 1 " id = " shopTbl " datasrc = # ShopList datafld=商铺>
< thead >
< tr >
< td height = " 25 " colspan = " 4 " >< span class = " shop_3d_text " > 店铺列表 </ span ></ td >
</ tr >
< tr >
< td width = " 30% " > 商铺名称 </ td >
< td width = " 20% " > 经营者 </ td >
< td width = " 20% " > 店铺级别 </ td >
< td width = " 30% " > 店铺简介 </ td >
</ tr >
</ thead >
< tbody >
< tr STYLE = " background-color:expression(rowIndex%2==1?'#EFEFEF':'#FFFFFF') " >
< td >< a datafld = " 连接地址 " >< span datafld = " 名称 " > 名称 </ span ></ a ></ td >
< td >< span datafld = " 经营人 " > 经营人 </ span ></ td >
< td >< span datafld = " 级别 " > 级别 </ span ></ td >
< td >< span datafld = " 简介 " > 简介 </ span ></ td >
</ tr >
</ tbody >
</ table >
< form return onsubmit = " jump(this);return false " >
< div align = " right " >
每页显示
< input name = pageSize datasrc = # ShopList datafld=页大小 size=2>条,
< input type = submit value = "" style = " width:0 " >
共 < span id = " pageCount " datasrc = # ShopList datafld=页数量></span>页
< span id = " recordCount " datasrc = # ShopList datafld=数量 ></span>条
< input name = firstPage type = submit value = 首页 onclick = " pageNum.value=1 " >
< input name = previousPage type = submit value = 上页 onclick = " pageNum.value=pageNum.value-1 " >
第 < input name = pageNum datasrc = # ShopList datafld=页号码 size=2>页
< input name = nextPage type = submit value = 下页 onclick = " pageNum.value=(pageNum.value-0)+1 " >
< input name = lastPage type = submit value = 尾页 onclick = " pageNum.value=pageCount.value " >
< input name = pageCount type = hidden datasrc = # ShopList datafld=页数量 onpropertychange="pageCount_onpropertychange(form)">
</ div > </ form >
</ body >
</ html >
----------------- xml . php ------------------
<? php
// require_once "Source/Global.php";
function getVars( $get_vars , $post_vars ) {
$i = count ( $get_vars );
$j = count ( $post_vars );
if ( $i > 0 && $j > 0 ) {
while ( list ( $key , $val ) = each ( $get_vars )) {
$Vars [ $key ] = $val ;
}
while ( list ( $key2 , $val2 ) = each ( $post_vars )) {
$Vars [ $key2 ] = $val2 ;
}
} elseif ( $i > 0 ) {
while ( list ( $key , $val ) = each ( $get_vars )) {
$Vars [ $key ] = $val ;
}
} elseif ( $j > 0 ) {
while ( list ( $key2 , $val2 ) = each ( $post_vars )) {
$Vars [ $key2 ] = $val2 ;
}
} else {
$Vars = array ();
}
return $Vars ;
}
$vars = getVars( $HTTP_GET_VARS , $HTTP_POST_VARS );
// class shoplist_res extends iGlobal{
class shoplist_res{
function shoplist_res( $vars , $cookie ){
// $this->iGlobal($vars,$cookie);
$this -> outPut( $vars , $cookie );
}
// function _shoplist_res(){
// $this->db->Close();
//}
function outPut( $vars , $cookie ){
/* $strQuery = "select count(*) as rc from ".$this->db_c->Db_Pre."pshop order by id desc";
$this->db->Query($strQuery);
$RecordCount = $this->db->Assoc();
$RecordCount = $RecordCount['rc'];
@$this->db->freeResult(); */
$RecordCount = 25 ;
if ( empty ( $vars [ ' pageNo ' ])) $vars [ ' pageNo ' ] = 1 ;
if ( empty ( $vars [ ' pageSize ' ])) $vars [ ' pageSize ' ] = 10 ;
$PageCount = ceil ( $RecordCount / $vars [ ' pageSize ' ]);
if ( $vars [ ' pageSize ' ] > $RecordCount ) $vars [ ' pageSize ' ] = $RecordCount ;
if ( $vars [ ' pageNo ' ] > $PageCount ) $vars [ ' pageNo ' ] = $PageCount ;
$xmlStr .= " <?xml version="1.0" encoding="GBK" ?> " . " " ;
$xmlStr .= " <商铺列表> " . " " ;
$xmlStr .= " <翻页工具 pageNo=" " . $vars [ ' pageNo ' ] . " " pageSize=" " . $vars [ ' pageSize ' ] . " " total=" " . $RecordCount . " "></翻页工具> " . " " ;
$xmlStr .= " <页号码> " . $vars [ ' pageNo ' ] . " </页号码> " . " " ;
$xmlStr .= " <页大小> " . $vars [ ' pageSize ' ] . " </页大小> " . " " ;
$xmlStr .= " <数量> " . $RecordCount . " </数量> " . " " ;
$xmlStr .= " <页数量> " . $PageCount . " </页数量> " . " " ;
// $strQuery = "select t1.*,t2.* from ".$this->db_c->Db_Pre."pshop as t1,".$this->db_c->Db_Pre."shoptype as t2 where t1.typenum=t2.typenum order by id desc "
// ."limit ".($vars['pageNo']-1)*$vars['pageSize'].",".$vars['pageSize'];
//die($strQuery);
//$this->db->Query($strQuery);
/* while($result = $this->db->Assoc()){
$xmlStr.= " "." ";
$xmlStr.= " <商铺>"." ";
$xmlStr.= " <名称><![CDATA[".$result['shopname']."]]></名称>"." ";
$xmlStr.= " <经营人><![CDATA[".$result['shopmaster']."]]></经营人>"." ";
$xmlStr.= " <级别><![CDATA[".$result['shoptype']."]]></级别>"." ";
$xmlStr.= " <简介><![CDATA[".$result['shopintro']."]]></简介>"." ";
$xmlStr.= " <连接地址><![CDATA[personal_shop.php?id=".$result['id']."]]></连接地址>"." ";
$xmlStr.= " </商铺>"." ";
} */
$sc = $vars [ ' pageNo ' ] * $vars [ ' pageSize ' ];
if ( $sc > $RecordCount ) $sc = $RecordCount ;
for ( $i = ( $vars [ ' pageNo ' ] - 1 ) * $vars [ ' pageSize ' ]; $i < $sc ; $i ++ ){
$xmlStr .= " " . " " ;
$xmlStr .= " <商铺> " . " " ;
$xmlStr .= " <名称><![CDATA[这是名称: " . $i . " ]]></名称> " . " " ;
$xmlStr .= " <经营人><![CDATA[这是经营人: " . $i . " ]]></经营人> " . " " ;
$xmlStr .= " <级别><![CDATA[这是级别: " . $i . " ]]></级别> " . " " ;
$xmlStr .= " <简介><![CDATA[这是简介: " . $i . " ]]></简介> " . " " ;
$xmlStr .= " <连接地址><![CDATA[personal_shop.php?id= " . $i . " ]]></连接地址> " . " " ;
$xmlStr .= " </商铺> " . " " ;
}
$xmlStr .= " </商铺列表> " . " " ;
header ( " Content-type: text/xml " );
echo $xmlStr ;
}
}
$shoplist = new shoplist_res( $vars , $HTTP_COOKIE_VARS );
// $shoplist->_shoplist_res();
unset ( $sthoplist );
?>
以上的php,注释的是我连接数据库取得的数据,既然放上来测试,也没有数据库连接,所以改了一下.偶也是刚接解xml不久,很多地方还是不很懂.见笑了......