Maison >développement back-end >tutoriel php >Chargement et pagination dynamiques de php et xml
Cet article présente principalement le chargement et la pagination dynamiques de php et xml. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Ceci regarde le Pacific Network I. J'ai vu dans les commentaires que Pacific.com utilise jsp comme langage backend pour générer des fichiers XML. Liez ensuite les données au HTML. J'en ai également créé un en utilisant php. Voici le fichier source.
-----------------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"> <p 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)"> </p> </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\" ?>"."\n"; $xmlStr.= "<商铺列表>"."\n"; $xmlStr.= "\t<翻页工具 pageNo=\"".$vars['pageNo']."\" pageSize=\"".$vars['pageSize']."\" total=\"".$RecordCount."\"></翻页工具>"."\n"; $xmlStr.= "\t<页号码>".$vars['pageNo']."</页号码>"."\n"; $xmlStr.= "\t<页大小>".$vars['pageSize']."</页大小>"."\n"; $xmlStr.= "\t<数量>".$RecordCount."</数量>"."\n"; $xmlStr.= "\t<页数量>".$PageCount."</页数量>"."\n"; //$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.= "\t"."\n"; $xmlStr.= "\t<商铺>"."\n"; $xmlStr.= "\t\t<名称><![CDATA[".$result['shopname']."]]></名称>"."\n"; $xmlStr.= "\t\t<经营人><![CDATA[".$result['shopmaster']."]]></经营人>"."\n"; $xmlStr.= "\t\t<级别><![CDATA[".$result['shoptype']."]]></级别>"."\n"; $xmlStr.= "\t\t<简介><![CDATA[".$result['shopintro']."]]></简介>"."\n"; $xmlStr.= "\t\t<连接地址><![CDATA[personal_shop.php?id=".$result['id']."]]></连接地址>"."\n"; $xmlStr.= "\t</商铺>"."\n"; }*/ $sc= $vars['pageNo']*$vars['pageSize']; if ($sc>$RecordCount) $sc = $RecordCount; for($i=($vars['pageNo']-1)*$vars['pageSize'];$i<$sc;$i++){ $xmlStr.= "\t"."\n"; $xmlStr.= "\t<商铺>"."\n"; $xmlStr.= "\t\t<名称><![CDATA[这是名称:".$i."]]></名称>"."\n"; $xmlStr.= "\t\t<经营人><![CDATA[这是经营人:".$i."]]></经营人>"."\n"; $xmlStr.= "\t\t<级别><![CDATA[这是级别:".$i."]]></级别>"."\n"; $xmlStr.= "\t\t<简介><![CDATA[这是简介:".$i."]]></简介>"."\n"; $xmlStr.= "\t\t<连接地址><![CDATA[personal_shop.php?id=".$i."]]></连接地址>"."\n"; $xmlStr.= "\t</商铺>"."\n"; } $xmlStr.= "</商铺列表>"."\n"; header("Content-type: text/xml\n\n"); echo $xmlStr; } } $shoplist = new shoplist_res($vars,$HTTP_COOKIE_VARS); //$shoplist->_shoplist_res(); unset($sthoplist); ?>
L'annotation PHP ci-dessus correspond aux données que j'ai obtenues en me connectant à la base de données. Depuis que je l'ai mise en test, il n'y a pas de connexion à la base de données, je l'ai donc modifiée. Je viens juste de commencer à comprendre le XML et je ne comprends toujours pas beaucoup de choses. C'est drôle...
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!