PHP+Ajax+Oracle分頁查詢

一:頁面文件(test.php)

<html>
<head>
<style TYPE="text/css">
<!--
A:link{text-decoration:none}
A:visited{text-decoration:none}
A:hover {color: #ff00ff;text-decoration:underline}
 -->
</style>
</head>
<body onLoad="initpage()">
 <script type="text/javascript" src="./js/calendar.js"></script>
 <script type="text/javascript" src="./js/ajax.js"></script>
 <script language="javascript">
 function getCurDate(n)//獲得客戶端時間,n表示與當前日期差幾天
 {
  var d = new Date();
  d.setDate(d.getDate()+n);
  d = d.getFullYear()+"" +add_zero(d.getMonth()+1) +""+ add_zero(d.getDate());  
     return d;  
 }
 
 function add_zero(temp)
 {
  if(temp<10) return "0"+temp;
  else return temp;
 }
 function initpage(){
  document.getElementById("starttime").value = getCurDate(-27);
  document.getElementById("endtime").value = getCurDate(0);
  var startTime = document.getElementById("starttime").value;
  var endTime = document.getElementById("endtime").value;
  var nowPage = document.getElementById("nowpage").value;
  var pageSize = document.getElementById("pagesize").value;
  showHint(startTime,endTime,nowPage,pageSize);
 }
</script>
 <input type="hidden" name="nowpage" id="nowpage" value="1">
 <input type="hidden" name="pagesize" id="pagesize" value="5">
<div style="width:600" align="center">
 開始時間:&nbsp;
 <input name="starttime" id="starttime" type="text" onFocus="calendar(event)" value="">
 &nbsp;結束時間:
 &nbsp;<input name="endtime" id = "endtime" type="text" onFocus="calendar(event)" value="">
 &nbsp;&nbsp;<input type = "button" value ="查詢" onclick =           "showHint(starttime.value,endtime.value,nowpage.value,pagesize.value)" />
  <span id="txtHint" name="txtHint">
  </span>
</div>
</body>
</html>

二:PHP取數據文件(getData.php)

<?php
include "class/adodb/adodb.inc.php";
header('Content-Type:text/html;charset=GB2312');
$starttime = $_GET["starttime"];
$endtime = $_GET["endtime"];
$nowpage = $_GET["nowpage"];
$pagesize = $_GET["pagesize"];
function pageination($recordcount,$tabNum,$pagesize,$nowpage){
    $strHtml = "";
 $num=$recordcount;//總記錄條數
 $showpage=$tabNum*2+1;//頁面上的標籤個數
  if($num==0){
   return false;
  }else{//else1
   if($num%$pagesize){
    $all_pages = (int)($num / $pagesize)+1;
   }else{
    $all_pages = $num / $pagesize;
   }
   $strHtml.="<table align='center'><tr><td width='70%' align='right'>";
   $strHtml.="<font size='-1' style='font-family:'宋體''>共".$all_pages."頁&nbsp;";
   if($all_pages!=1){//if all_pages
    if($nowpage!=1)
     $strHtml.="<a href=# οnclick='showHint(starttime.value,endtime.value,1,pagesize.value)'>首頁</a>
        <a href=# οnclick='showHint(starttime.value,endtime.value,"
        .($nowpage-1).",pagesize.value)'>上一頁&nbsp;</a>";
    if($all_pages<=$showpage)
     for($i=1;$i<=$all_pages;$i++){
      if ($nowpage==$i){
       $strHtml.="<span>$i</span>";
      }else{
       $strHtml.="<a href=# οnclick='showHint(starttime.value,endtime.value,"
          .$i.",pagesize.value)'>[".$i."]</a>";
      }
    }else{
    $bpage=$nowpage-$tabNum;
    $epage=$nowpage+$tabNum;
    if($bpage<=1)
    for($i=1;$i<=$showpage;$i++){
     if ($nowpage==$i){
      $strHtml.="<span>$i</span>";
     }else{
      $strHtml.="<a href=# οnclick='showHint(starttime.value,endtime.value,"
          .$i.",pagesize.value)'>[".$i."]</a>";
     }
    }else if($epage<=$all_pages)
     for($i=$bpage;$i<=$epage;$i++){
      if ($nowpage==$i)
       $strHtml.="<span>$i</span>";
      else
       $strHtml.="<a href=# οnclick='showHint(starttime.value,endtime.value,"
          .$i.",pagesize.value)'>[".$i."]</a>";
     }//end for
    else
     for($i=$bpage;$i<=$all_pages;$i++){
      if ($nowpage==$i)
       $strHtml.="<span>$i</span>";
      else
       $strHtml.="<a href=# οnclick='showHint(starttime.value,endtime.value,"
          .$i.",pagesize.value)'>[".$i."]</a>";
     }//end for
    }
    if($nowpage!=$all_pages)
     $strHtml.="<a href=# οnclick='showHint(starttime.value,endtime.value,"
        .($nowpage+1).",pagesize.value)'>&nbsp;下一頁</a>
        <a href=# οnclick='showHint(starttime.value,endtime.value,"
        .$all_pages.",pagesize.value)'>尾頁</a>";
  
     $strHtml.="&nbsp;&nbsp;轉到第 <select name='topage' size='+1' οnchange=
        'showHint(starttime.value,endtime.value,this.value,pagesize.value)'>/n";
     
     for($i=1;$i<=$all_pages;$i++){
      if($i==$nowpage){
       $strHtml.="<option value='$nowpage' selected>$nowpage</option>/n";}
      else
       $strHtml.="<option value='$i'>$i</option>/n";
     }
     $strHtml.="</select> 頁&nbsp;";
     $strHtml.='</font></td></tr></table>';
     return $strHtml;
   }//end if all_pages
  }//end eles1
}//end function  

$db = ADONewConnection("oci8");
$db->connectSID = true;
$flag = $db->Connect("192.168.*.*","user","password","sid");
$tablesql = "select f.day day,ap,f107 from t_swpc_ap_1d a, t_swpc_f107_1d f where f.day = a.day and
   f.day between '".$starttime."' and '".$endtime."'";
$sql="select * from (select A.*,rownum RN from (".$tablesql.") A where rownum <= $nowpage*$pagesize)where RN >($nowpage-1)*$pagesize ";
$rs = $db->Execute($sql);
$num=($nowpage -1) * $pagesize +1; //序號
$response = "<table cellspacing=0 bordercolordark=#FFFFFF width='100%' bordercolorlight=#000000 border=1 align='center'>
<tr bgcolor='#6b8ba8' style='color:FFFFFF'><td width='20%' align='center'>日期</td><td width='30%' align='center' >AP</td><td width='30%' align='center'>F107</td><td width='20%' align='center'>詳情</td></tr>";

while(!$rs->EOF){ 
  $response = "".$response."<tr><td width='20%'>".$rs->fields[0]."</td>".
  "<td width='30%'>".$rs->fields[1]."</td>"."<td width='30%'>"
  .$rs->fields[2]."</td><td width='20%' align='center'><a href=#>查看</a><td></tr>";
 $num ++;
 $rs->MoveNext();
}
$sql_count = "select count(*) from t_swpc_ap_1d a, t_swpc_f107_1d f where f.day = a.day and
   f.day between '".$starttime."' and '".$endtime."' order by f.day asc";
$result = $db->Execute($sql_count);
$recordcount = $result->fields[0];
$response.=pageination($recordcount,2,$pagesize,$nowpage);
$db->close();
$response = $response."</table>";
echo $response;
?>

三:js文件(ajax.js)

var xmlHttp=null;
function showHint(startTime,endTime,nowpage,pagesize)
{
if (startTime>endTime)
  {
  document.getElementById("txtHint").innerHTML="<br><br><br>開始時間大於結束時間!"
  return
  }
 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
  {
  alert ("Browser does not support HTTP Request")
  return
  }
var url="getData.php"
url=url+"?starttime="+startTime+"&endtime="+endTime+"&nowpage="+nowpage+"&pagesize="+pagesize
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 {
 document.getElementById("txtHint").innerHTML=xmlHttp.responseText
 }
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

發佈了68 篇原創文章 · 獲贊 6 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章