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 多进程 解决难题
Jun 22 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
PHP中的integer类型使用分析
Jul 27 PHP
PHP无刷新上传文件实现代码
Sep 19 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
Jun 16 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
PHP时间处理类操作示例
Sep 05 PHP
php输出文字乱码的解决方法
Oct 04 PHP
laravel请求参数校验方法
Oct 10 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 array_push 数组函数
2009/12/26 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
Python中的Numpy入门教程
2014/04/26 Python
Python常用模块用法分析
2014/09/08 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
python版飞机大战代码分享
2018/11/20 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
学习python分支结构
2019/05/17 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
详解Python yaml模块
2020/09/23 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
Html5新增标签有哪些
2017/04/13 HTML / CSS
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
试用期解除劳动合同通知书
2015/04/16 职场文书
中学教代会开幕词
2016/03/04 职场文书