手机
当前位置:查字典教程网 >编程开发 >AJAX相关 >asp简单的ajax留言板(采用三层模式)
asp简单的ajax留言板(采用三层模式)
摘要:好久没有写过asp了,这回写个留言板还真觉得有点难度,竞然写了整整一天,哈哈.就只有留言其它的都什么也没写,采用三层结构(不知道算不算,本来...

好久没有写过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()

%>

<h2>客户留言</h2>

<p>

<form name="subForm" id="subForm">

<textarea id="con" name="con" cols="56" rows="6" wrap="VIRTUAL"></textarea>

<input type="button" name="submit" value="提交留言" />

</form>

</p>

<%=myList%>

BLL_Guest.asp

<%

'/// <summary>

'/// 摘要说明。

'/// </summary>

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 = "<a href=""?tCMD=DEL&Id="&objRS("Id")&""">删除</a>"

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 = "<li><span>{0}</span> <span>{1}</span><br /><span>作者:{2}</span> <span>{3}</span> <span>{4}</span></li>" & vbCrLf

UL = "<UL>{0}<li>{1}</li></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

<%

'/// <summary>

'/// 摘要说明。

'/// </summary>

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

'/// <summary>

'/// 获得信息

'/// </summary>

'/// <param name="Id">判断字段</param>

'/// <returns>信息体</returns>

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

'/// <summary>

'/// 插入信息

'/// </summary>

'/// <param name="">信息体</param>

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

'/// <summary>

'/// 更新信息

'/// </summary>

'/// <param name="">信息体</param>

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

'/// <summary>

'/// 删除信息

'/// </summary>

'/// <param name="">信息体</param>

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

'/// <summary>

'/// 统计信息

'/// </summary>

'/// <param name="">信息体</param>

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

'/// <summary>

'/// 根据条件列出所有信息(带有分页)

'/// </summary>

'/// <param name="PageSize">每页记录数</param>

'/// <param name="CurrentPage">页码</param>

'/// <param name="WhereValue">判断值</param>

'/// <param name="OrderValue">排序</param>

'/// <returns>返回objRS</returns>

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

<%

'/// <summary>

'/// 摘要说明。

'/// </summary>

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

<%

'/// <summary>

'/// 摘要说明

'/// </summary>

Class Common

'/// <summary>

'/// 获得信息

'/// </summary>

'/// <param name="Id">需要内容</param>

'/// <param name="Id">替换关键字</param>

'/// <returns>格式化后内容</returns>

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 = "合计<STRONG><FONT color=""red"">{0}</FONT></STRONG>篇|"

const C_FIRSTPAGE1 = "<a href=""#""$('{0}&PageNo={1}')"">首页</a>"

const C_FIRSTPAGE2 = "首页"

const C_PREVPAGE1 = "<a href=""#""$('{0}&PageNo={1}')"">上一页</a>"

const C_PREVPAGE2 = "上一页"

const C_NEXTPAGE1 = "<a href=""#""$('{0}&PageNo={1}')"">下一页</a>"

const C_NEXTPAGE2 = "下一页"

const C_LASTPAGE1 = "<a href=""#""$('{0}&PageNo={1}')"">尾页</a>"

const C_LASTPAGE2 = "尾页"

const C_CURRENTPAGE = "页次:<STRONG><FONT color=""red"">{0}</FONT>/{1}</STRONG>页"

const C_PAGESIZE = "<STRONG>{0}</STRONG>篇/页"

const C_GOTOPAGE = "跳转:<input type=""text"" name=""goto"" value=""{1}"" onchange=""$('{0}&PageNo='+this.value)""width:20px;border:1px""/>"

Dim PageCount,pages

Dim lRecordCount,lFirstpage,lPrevpage,lNextpage,lLastpage,lCurrentpage,lPagesize,lGotopage

Dim p,parms

If RecordCount Mod PageSize <> 0 Then

pages = 1

else

pages = 0

End If

PageCount=CInt(RecordCount/PageSize + pages)

parms=Array(RecordCount)

lRecordCount = Format(C_RECORDCOUNT,parms)

if CInt(CurrentPage)>1 Then

parms=Array(Pageurl,1)

lFirstpage = Format(C_FIRSTPAGE1,parms)

parms=Array(Pageurl,CInt(CurrentPage)-1)

lPrevpage = Format(C_PREVPAGE1,parms)

Else

lFirstpage=C_FIRSTPAGE2

lPrevpage=C_PREVPAGE2

End If

if CInt(CurrentPage)<PageCount Then

parms=Array(Pageurl,CInt(CurrentPage)+1)

lNextpage = Format(C_NEXTPAGE1,parms)

parms=Array(Pageurl,CInt(CurrentPage)+1)

lLastpage = Format(C_LASTPAGE1,parms)

Else

lNextpage=C_NEXTPAGE2

lLastpage=C_LASTPAGE2

End If

parms=Array(CurrentPage,PageCount)

lCurrentpage = Format(C_CURRENTPAGE,parms)

parms=Array(PageSize)

lPagesize = Format(C_PAGESIZE,parms)

parms=Array(Pageurl,CurrentPage)

lGotopage = Format(C_GOTOPAGE,parms)

p=lRecordCount&lFirstpage&lPrevpage&lNextpage&lLastpage&lCurrentpage&lPagesize&lGotopage

Page = p

End Function

End Class

%>

AccHelper.asp

<%

'/// <summary>

'/// AccHelper 的摘要说明。

'/// </summary>

Class AccHelper

Public CONN_STRING

'/// <summary>

'/// 执行ExecuteNonQuery

'/// </summary>

'/// <param name="connString">连接字符</param>

'/// <param name="cmdText">sql命令</param>

Public Function ExecuteNonQuery(connString,cmdText)

Dim objConn

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open connString

objConn.Execute(cmdText)

End Function

'/// <summary>

'/// 执行ExecuteReader

'/// </summary>

'/// <param name="connString">连接字符</param>

'/// <param name="cmdText">sql命令</param>

'/// <returns>RS</returns>

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

'/// <summary>

'/// 执行Recordset

'/// </summary>

'/// <param name="connString">连接字符</param>

'/// <param name="cmdText">sql命令</param>

'/// <returns>RS</returns>

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

复制代码 代码如下:

varhttp_request=false;

functionmakeRequest(obj,url){

http_request=false;

if(window.XMLHttpRequest){//Mozilla,Safari,...

http_request=newXMLHttpRequest();

if(http_request.overrideMimeType){

http_request.overrideMimeType('text/xml');

}

}elseif(window.ActiveXObject){//IE

try{

http_request=newActiveXObject("Msxml2.XMLHTTP");

}catch(e){

try{

http_request=newActiveXObject("Microsoft.XMLHTTP");

}catch(e){}

}

}

if(!http_request){

alert('Givingup:(CannotcreateanXMLHTTPinstance');

returnfalse;

}

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);

}

functionupdateObj(obj,data){

obj.innerHTML=data;

}

function$(url){

varobj=document.getElementById("content");

obj.style.display='block';

document.getElementById("container").style.margin="10pxauto0px";

obj.innerHTML="Loading…";

makeRequest(obj,url);

}

html调用方法:

复制代码 代码如下:

<ahref="#"onclick="$('news.html')">新闻</a><ahref="#"onclick="$('product.html')">产品</a><ahref="#"onclick="$('case.html')">案例</a><ahref="#"onclick="$('contact.html')">联系</a><ahref="http://zj55com.cnblogs.com/"target="_blank">博客</a>

【asp简单的ajax留言板(采用三层模式)】相关文章:

Ajax使用杂谈 也许也是乱弹

深入浅析AjaxFileUpload实现单个文件的 Ajax 文件上传库

分享ajax的三种解析模式

html+js+php一次原始的Ajax请求示例

一个简单的ASP+AJAX留言本源码下载

ajax 检测用户名是否被占用

Ajax基础详解教程(一)

简述Ajax的优点与缺点

JQuery ajax返回JSON时的处理方式 (三种方式)

Ajax的小贴士使用小结

精品推荐
分类导航