asp简单的ajax留言板(采用三层模式) 好久没有写过asp了,这回写个留言板还真觉得有点难度,竞然写了整整一天,哈哈.就只有留言其它的都什么也没写,采用三层结构(不知道算不算,本来对三层的概念很糊涂)演示www.zj55.com的留言板,希望各位大哥大姐如果发现有漏洞的话请在这里告诉我,千万不要黑我的网站,在这里小弟先谢过了.index.asp<%@ codepage=65001%><%option explicit%><% Response.Charset="utf-8"%><% Session.CodePage=65001 %><% Dim mybll Dim myList Set mybll = new BLL_Guest Select Case Request("tCMD") Case "SAVE" mybll.Insert() Case "DEL" mybll.Delete() End Select myList = mybll.FindByPage()%>

客户留言

<%=myList%>BLL_Guest.asp<% '/// '/// 摘要说明。 '/// Class BLL_Guest Private mycom,mymod,mydal Private LI,UL Private DEL '获取信息 Public Sub GetGuest() mydal.GetGuest(Id) End Sub '新增信息 Public Sub Insert() mymod.Content = Request("content") mymod.re = Request("Re") mymod.Addtime = Now() mymod.Ip = request.servervariables("HTTP_X_FORWARDED_FOR") If len(mymod.Ip)<=0 Then mymod.Ip = request.servervariables("REMOTE_ADDR") Call mydal.Insert(mymod) End Sub '更新信息 Public Sub Update() Call mydal.Update(mymod) End Sub '删除信息 Public Sub Delete() mydal.Delete(Request("Id")) End Sub '查找信息 Public Function FindByPage() Dim PageSize,CurrentPage,WhereValue,OrderValue,RecordCount Dim objRS Dim tmp1,tmp2,tmp3,parms,i Dim tCMD tCMD = Request("tCMD") PageSize = "8" CurrentPage = Request("PageNo") If Len(CurrentPage)<=0 Then CurrentPage=1 End If WhereValue = "" OrderValue = "Id" Set objRS = mydal.FindByPage(PageSize,CurrentPage-1,WhereValue,OrderValue) i = 1 RecordCount = mydal.Count(WhereValue) Do While Not objRS.EOF If tCMD="DEL" Then DEL = "删除" Else DEL = "" End If parms=Array(i,objRS("content"),objRS("ip"),objRS("addtime"),DEL) tmp1 = tmp1 & mycom.Format(LI,parms) objRs.Movenext i = i + 1 Loop tmp3 = mycom.Page(PageSize,CurrentPage,RecordCount,"guest/index.asp?tCMD=LIST") parms=Array(tmp1,tmp3) tmp2 = tmp2 & mycom.Format(UL,parms) FindByPage = tmp2 End Function Private Sub Class_Initialize() LI = "
  • {0} {1}
    作者:{2} {3} {4}
  • " & vbCrLf UL = "" DEL = "" Set mycom = new Common set mymod = new MOD_Guest set mydal = new DAL_Guest End Sub Private Sub Class_Terminate() Set mycom = Nothing Set mymod = Nothing set mydal = Nothing End Sub End Class%>DAL_Guest.asp<% '/// '/// 摘要说明。 '/// Class DAL_Guest Private SQL_01 Private SQL_02 Private SQL_03 Private SQL_04 Private SQL_05 Private SQL_06 Private SQL_07 Private mycom,myacc,mymod '/// '/// 获得信息 '/// '/// 判断字段 '/// 信息体 Public Function GetGuest(Id) Dim parms,SQL,objRS parms = Array(Id) SQL = mycom.Format(SQL_01,parms) Set objRS = myacc.ExecuteReader(myacc.CONN_STRING,SQL) If Not objRS.EOF then Call mymod.SetVar(objRs("Id"),objRs("Content"),objRs("Re"),objRs("Addtime"),objRs("Ip")) Set GetGuest = mymod Else GetGuest = Null End If End Function '/// '/// 插入信息 '/// '/// 信息体 Public Sub Insert(vmod) Dim parms,SQL parms = Array(vmod.Content,vmod.Re,vmod.Addtime,vmod.Ip) SQL = mycom.Format(SQL_02,parms) Call myacc.ExecuteReader(myacc.CONN_STRING,SQL) End Sub '/// '/// 更新信息 '/// '/// 信息体 Public Sub Update(vmod) Dim parms,SQL parms = Array(vmod.Id,vmod.Content,vmod.Re,vmod.Addtime,vmod.Ip) SQL = mycom.Format(SQL_03,parms) Call myacc.ExecuteReader(myacc.CONN_STRING,SQL) End Sub '/// '/// 删除信息 '/// '/// 信息体 Public Sub Delete(Id) Dim parms,SQL parms = Array(Id) SQL = mycom.Format(SQL_04,parms) Call myacc.ExecuteNonQuery(myacc.CONN_STRING,SQL) End Sub '/// '/// 统计信息 '/// '/// 信息体 Public Function Count(WhereValue) Dim parms,SQL,objRS parms = Array(WhereValue) SQL = mycom.Format(SQL_07,parms) Set objRS = myacc.Recordset(myacc.CONN_STRING,SQL) Count = objRS.RecordCount End Function '/// '/// 根据条件列出所有信息(带有分页) '/// '/// 每页记录数 '/// 页码 '/// 判断值 '/// 排序 '/// 返回objRS Public Function FindByPage(PageSize,CurrentPage,WhereValue,OrderValue) Dim parms,SQL,objRS Dim s1 If CurrentPage="0" Then s1 = PageSize & "|" + OrderValue & "|" & WhereValue parms = Split(s1,"|") SQL = mycom.Format(SQL_05,parms) Else s1 = PageSize & "|" & OrderValue & "|" + WhereValue & "|" & CurrentPage*PageSize parms = Split(s1,"|") SQL = mycom.Format(SQL_06,parms) End If Set objRS = myacc.ExecuteReader(myacc.CONN_STRING,SQL) Set FindByPage = objRS End Function Private Sub Class_Initialize() SQL_01 = "Select * From [Guest] Where Id = {0}" SQL_02 = "Insert into [Guest] ([Content],[Re],[Addtime],[Ip]) values('{0}','{1}','{2}','{3}')" SQL_03 = "Update [Guest] Set [Content]='{1}',[Re]='{2}',[Addtime]='{3}',[Ip]='{4}' Where Id = {0}" SQL_04 = "Delete From [Guest] Where Id In ({0})" SQL_05 = "Select Top {0} * From [Guest] Where Content Like '%{2}%' Order By {1} Desc,Id Desc" SQL_06 = "Select Top {0} * From [Guest] Where Content Like '%{2}%' And Id Not IN(Select Top {3} Id From [Guest] Where Content Like '%{2}%' Order By {1} Desc,Id Desc) Order By {1} Desc,Id Desc" SQL_07 = "Select * From [Guest] Where Content Like '%{0}%' " Set mycom = new Common Set myacc = new AccHelper Set mymod = new MOD_Guest End Sub Private Sub Class_Terminate() Set mycom = Nothing Set myacc = Nothing Set mymod = Nothing End Sub End Class%>MOD_Guest.asp<% '/// '/// 摘要说明。 '/// Class MOD_Guest Public Id Public Content Public Re Public Addtime Public Ip Public Sub SetVar(vId,vContent,vRe,vAddtime,vIp) Id=vId Content=vContent Re=vContent Addtime=vAddtime Ip=vIp End Sub End Class%>Common.asp<% '/// '/// 摘要说明 '/// Class Common '/// '/// 获得信息 '/// '/// 需要内容 '/// 替换关键字 '/// 格式化后内容 Public Function Format(str,arr) Dim r,i r = str For i = 0 To UBound(arr) r = Replace(r,"{"&i&"}",arr(i)) Next Format = r End Function Public Function Page(PageSize,CurrentPage,RecordCount,PageUrl) const C_RECORDCOUNT = "合计{0}篇 |" const C_FIRSTPAGE1 = " 首页" const C_FIRSTPAGE2 = " 首页" const C_PREVPAGE1 = " 上一页" const C_PREVPAGE2 = " 上一页" const C_NEXTPAGE1 = " 下一页" const C_NEXTPAGE2 = " 下一页" const C_LASTPAGE1 = " 尾页" const C_LASTPAGE2 = " 尾页" const C_CURRENTPAGE = " 页次:{0}/{1}页" const C_PAGESIZE = " {0}篇/页 " const C_GOTOPAGE = " 跳转: '/// AccHelper 的摘要说明。 '/// Class AccHelper Public CONN_STRING '/// '/// 执行ExecuteNonQuery '/// '/// 连接字符 '/// sql命令 Public Function ExecuteNonQuery(connString,cmdText) Dim objConn Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open connString objConn.Execute(cmdText) End Function '/// '/// 执行ExecuteReader '/// '/// 连接字符 '/// sql命令 '/// RS Public Function ExecuteReader(connString,cmdText) Dim objConn,objRS Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open connString Set objRS = objConn.Execute(cmdText) Set ExecuteReader = objRS End Function '/// '/// 执行Recordset '/// '/// 连接字符 '/// sql命令 '/// RS Public Function Recordset(connString,cmdText) Dim objConn,objRS Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open connString Set objRS = Server.CreateObject("ADODB.RecordSet") objRS.Open cmdText,objConn,1,3 Set Recordset = objRS End Function Private Sub Class_Initialize() CONN_STRING = "provider = microsoft.jet.oledb.4.0;data source=" & Server.Mappath("db.mdb") End Sub End Class%>ajax.js复制代码 代码如下:var http_request = false; function makeRequest(obj,url) { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = function() { if (http_request.readyState == 4) { if (http_request.status == 200) { updateObj(obj,http_request.responseText); } else { updateObj(obj,""); } } } http_request.open('GET', url, true); http_request.send(null); } function updateObj(obj,data){ obj.innerHTML = data; }function $(url){ var obj = document.getElementById("content"); obj.style.display='block'; document.getElementById("container").style.margin="10px auto 0px"; obj.innerHTML = "Loading…"; makeRequest(obj,url); }html调用方法:复制代码 代码如下:新闻产品案例联系博客