Ajax+Asp原始碼]讀取資料庫內容的表格(沒有用架構)第1/2頁

來源:互聯網
上載者:User

功能:
讀取資料庫內容的表格.讀取資料方式為ajax,分頁也是.代碼寫得不好.呵呵.供一些學習ajax的朋友參考參考.如有不妥請大家跟貼糾正.我會根據大家的提議不斷修正代碼.
目前還有一個小問題,如果有朋友有興趣幫我解決一下在下不勝感激
你翻到最後一頁的時候如果只有一行會出現空白和undefined.這個問題我試了很多方法一直沒有很妥當的解決.
注:下面一些地方出現笑臉表情的是 大寫的d
其實很多地方都可以根據asp檔案中輸出的字元來控制.目前還沒有往那方面完善.比如說一列顯示多少行等.
Asp頁面的代碼:
檔案名稱:demo.Asp
複製代碼 代碼如下:'下面這個Sub 是延遲用於調試ajax的loading
<%
Sub TimeDelaySeconds(DelaySeconds)
SecCount = 0
Sec2 = 0
While SecCount < DelaySeconds + 1
Sec1 = Second(Time())
If Sec1 <> Sec2 Then
Sec2 = Second(Time())
SecCount = SecCount + 1
End If
Wend
End Sub
TimeDelaySeconds(0)
%>

<%
Response.Expires = -9999
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-ctrol","no-cache"
Response.Charset = "GB2312"

Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Database.mdb")
conn.Open connstr
%>

<%
set rs = server.createobject("adodb.recordset")
Sqlstr = "select * from UserData order by id"
rs.open Sqlstr,conn,1,1
rs.PageSize = 3
AllPage = rs.PageCount

Page = request.QueryString ("page")

'***********************判斷
if cint(page) =< 1 then
Page = 1
elseif cint(page) >= rs.PageCount then
Page = rs.PageCount
else
intpage = cint(page)
end if
'***************************

rs.AbsolutePage=page

Response.write AllPage&","&rs.AbsolutePage&","

for i = 1 to rs.PageSize
if rs.EOF or rs.BOF then exit for
Response.write rs(0)&","&rs(1)&","&rs(2)&","&rs(3)&","
rs.movenext
next

rs.close
Set rs = nothing
%>

ajax處理的頁面代碼
檔案名稱:Ajax.js 複製代碼 代碼如下:var request = false;
//------------------判斷瀏覽器並建立對象----------------------------------------------------------------
try { //嘗試建立 XMLHttpRequest 對象
request = new XMLHttpRequest(); //---此對象將相容除IE外大部分瀏覽器!
} //-
catch (trymicrosoft) { //如果失敗 catch (trymicrosoft)

try { //嘗試使用較新版IE相容的對象(Msxml2.XMLHTTP)
request = new ActiveXObject("Msxml2.XMLHTTP"); //---此對象將相容老版本IE
} //-
catch (othermicrosoft) { //如果失敗 catch (othermicrosoft)

try { //嘗試使用較老版IE相容的對象(Microsoft.XMLHTTP)
request = new ActiveXObject("Microsoft.XMLHTTP"); //---此對象將相容新版本IE
} //-
catch (failed) { //如果失敗 catch (failed)
request = false; //request = false
alert("Object Error!");
}
}
}
defaultPages();
//-------------------------------------------------------------------------------------------------------------*/

//**********讀取資料***********************************************************

function defaultPages() {
var url = "Demo.asp";
request.open("GET", url, true); //open方法 ("方式",url,是否非同步)
request.onreadystatechange = updatePage; //判斷伺服器處理的結果
request.send(null); //送出.
}

function selectPages(Method,Pages) {

//先刪除以前的資料
for(i=0;i<3;i++)
document.getElementById("MyTable").deleteRow();
//----------------

if (Method == "Previous"){
var PageTemp = document.getElementById("PageNow").value;
var PageNow = parseInt(PageTemp)-1;

//alert (PageNow);//debug

var url = "Demo.asp?Page="+PageNow;
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
}

else if (Method == "Next"){
var PageTemp = document.getElementById("PageNow").value;
var PageNow = parseInt(PageTemp)+1;

//alert (PageNow);//debug

var url = "Demo.asp?Page="+PageNow;
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
}
}

//***********伺服器是否處理完成.**********************************************************************************

function updatePage() {
if (request.readyState <= 3){ //小於或等於狀態3----loading.
document.getElementById("Status").innerHTML = "Loading...";
document.getElementById("Pages").innerHTML = "Previous│Next";
}

if (request.readyState == 4){ //狀態4----完成.
if (request.status == 200) { //如果http狀態為200--當成功擷取擷取資料.
requestAllright();
}else{ //如果http狀態為404--http報錯.
document.getElementById("Status").innerHTML = "Error:" + request.status;
document.getElementById("Pages").innerHTML = "Previous│Next";
}
}
}

//***********處理完成-產生資料.**********************************************************************************

function requestAllright() {
var getStr = request.responseText;
var getValue = getStr.split(",");
var PageCount = getValue[0];
var PageNow = getValue[1];

var Contact = [
[getValue[2],getValue[3],getValue[4],getValue[5]],
[getValue[6],getValue[7],getValue[8],getValue[9]],
[getValue[10],getValue[11],getValue[12],getValue[13]]
];

for (var List=0;List<Contact.length;List++){
var MyTr = MyTable.insertRow(); //建立Tr標籤
for (var Cell=0;Cell<Contact[List].length;Cell++){ //Td迴圈
var MyTd = MyTr.insertCell(); //建立Td標籤
MyTd.innerHTML = Contact[List][Cell]; //給Td標籤插入內容
if (Cell == 0) //如果當前為每行的第一個Td
MyTd.id = "Number"; //賦予其ID為Number
}
}

//上一頁下一頁處的判斷,是否可以點擊******************************************************************************************
if (PageNow == PageCount){
document.getElementById("Pages").innerHTML = "<a href=javascript:selectPages('Previous','0'); target=_self class=pagesTag>Previous</a>│Next"
}
else if (PageNow == 1){
document.getElementById("Pages").innerHTML = "Previous│<a href=javascript:selectPages('Next','0'); target=_self class=pagesTag>Next</a>"
}
else if (PageNow != 1 || PageNow != PageCount){
document.getElementById("Pages").innerHTML = "<a href=javascript:selectPages('Previous','0'); target=_self class=pagesTag>Previous</a>│<a href=javascript:selectPages('Next','0'); target=_self class=pagesTag>Next</a>"
}
//上一頁下一頁處的判斷,是否可以點擊******************************************************************************************

document.getElementById("PageCount").value = PageCount;
document.getElementById("PageNow").value = PageNow;
document.getElementById("Status").innerHTML = "Done with!";

//alert(PageCount);//debug
//alert(PageNow);//debug

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.