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支持页面回退的两种方法
Jan 10 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php调用nginx的mod_zip模块打包ZIP文件
Jun 11 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
php二维码生成以及下载实现
Sep 28 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 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中获取时间的下一周下个月的方法
2014/03/18 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
php 类自动载入的方法
2015/06/03 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
php curl常用的5个经典例子
2017/01/20 PHP
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
简单理解Vue中的nextTick方法
2018/01/30 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
Python实现句子翻译功能
2017/11/14 Python
Python基于多线程实现抓取数据存入数据库的方法
2018/06/22 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
pandas针对excel处理的实现
2021/01/15 Python
adidas美国官网:adidas US
2016/09/21 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python