asp js ajax,asp简单的ajax留言板(采用三层模式)

好久没有写过asp了,这回写个留言板还真觉得有点难度,竞然写了整整一天,哈哈.

就只有留言其它的都什么也没写,采用三层结构(不知道算不算,本来对三层的概念很糊涂)

演示www.zj55.com的留言板,希望各位大哥大姐如果发现有漏洞的话请在这里告诉我,千万不要黑我的网站,在这里小弟先谢过了.

index.asp

option explicit

%>

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

%>

客户留言

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 = "

  • {0}
  • {1}
"

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 = " 跳转:  "

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)

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

'///

'/// 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调用方法:

新闻产品案例联系博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值