xml+php动态载入与分页


Posted in PHP onOctober 09, 2006

这是在看太平洋网的评论时看到的,太平洋网是用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\" ?>"."\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);
?>

以上的php,注释的是我连接数据库取得的数据,既然放上来测试,也没有数据库连接,所以改了一下.偶也是刚接解xml不久,很多地方还是不很懂.见笑了......

PHP 相关文章推荐
关于PHP中的Class的几点个人看法
Oct 09 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
php创建session的方法实例详解
Jan 27 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
curl和libcurl的区别简介
Jul 01 PHP
PHP类相关知识点实例总结
Sep 28 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
PHP容器类的两种实现方式示例
Jul 24 PHP
十天学会php之第七天
Oct 09 #PHP
十天学会php之第九天
Oct 09 #PHP
十天学会php之第十天
Oct 09 #PHP
十天学会php之第八天
Oct 09 #PHP
十天学会php之第五天
Oct 09 #PHP
十天学会php之第四天
Oct 09 #PHP
十天学会php之第三天
Oct 09 #PHP
You might like
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Python selenium自动化测试模型图解
2020/04/15 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
零基础小白多久能学会python
2020/06/22 Python
python re的findall和finditer的区别详解
2020/11/15 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
夜大毕业自我鉴定
2013/10/11 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
英语课外活动总结
2014/08/27 职场文书
介绍信格式
2015/01/30 职场文书
百年校庆感言
2015/08/01 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书