ASP实时刷新显示mysql数据_ajax+asp实现无刷新读取数据

ajax+asp实现无刷新读取数据

作者:netfox 日期:2016-08-13

字体大小: 小 中 大

hn2_sunny.gif

hn2_t_sunny.gif

level3.gif

icon_edit.gificon_del.gif

这是关于用ajax+asp实现无刷新读取数据的方法,主要是分为三个步骤1. 前台AJAX代码(javascript)的创建。 2. 后台服务端ASP AJAX代码的编写。 3. ASP+AJAX+数据库的实例演示及讲解

1. 前台AJAX代码(javascript)的创建。

2. 后台服务端ASP AJAX代码的编写。

3. ASP+AJAX+数据库的实例演示及讲解。

第一步:前台AJAX代码(javascript)的创建。

我们先创建一个index.html前台文件,内容代码如下:

代码如下

AJAX教程实例-AJAX教程实例-ASP+AJAX+ACCESS数据库应用-脚本之家原创ajax实例教程

function showCustomer(str)

{

var url="getcustomer.asp?sid=" + Math.random() + "&q=" + str

xmlHttp=GetXmlHttpObject(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(handler)

{

var objXmlHttp=null

if (navigator.userAgent.indexOf("Opera")>=0)

{

alert("This example doesn't work in Opera")

return;

}

if (navigator.userAgent.indexOf("MSIE")>=0)

{

var strName="Msxml2.XMLHTTP"

if (navigator.appVersion.indexOf("MSIE 5.5")>=0)

{

strName="Microsoft.XMLHTTP"

}

try

{

objXmlHttp=new ActiveXObject(strName)

objXmlHttp.onreadystatechange=handler

return objXmlHttp

}

catch(e)

{

alert("Error. Scripting for ActiveX might be disabled")

return

}

}

if (navigator.userAgent.indexOf("Mozilla")>=0)

{

objXmlHttp=new XMLHttpRequest()

objXmlHttp.οnlοad=handler

objXmlHttp.οnerrοr=handler

return objXmlHttp

}

}

请选择用户:

脚本之家.by.alixixi.com

哇塞网

收音机

网站信息...

ajax代码讲解:

关键代码为JS部分,其原理就是创建一个客户的Microsoft.XMLHTTP对象,来完成前台数据与服务端ASP的交互。

然后要注意的就是

这一行代码,原理就是通过showCustomer(this.value)触发AJAX的前台脚本对象,将用户在下拉列表选择的结果数据通过 Microsoft.XMLHTTP发送到服务端处理,再返回到前台ID为txtHint的

用户信息...
层标签显示出来。

第二步:后台服务端ASP AJAX代码的编写。

创建完刚才的index.html,我们接着再创建一个getcustomer.asp文件,请确认你的ASP环境一切OK:)

getcustomer.asp的代码如下:

代码如下

sql="Select * FROM CUSTOMERS Where CUSTOMERID="

sql=sql & request.querystring("q")

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("ajaxjiaocheng.mdb"))

set rs = Server.CreateObject("ADODB.recordset")

rs.Open sql, conn

Response.CharSet = "GB2312"

if not rs.EOF then

response.write "

编号:"&rs(0)&""

response.write "

名称:"&rs(1)&""

response.write "

点击:"&rs(2)&""

response.write "

介绍:"&rs(3)&""

end if

rs.close

set rs = nothing

conn.close

set conn = nothing

%>

ajax代码讲解:

如果有asp基础的朋友一看就能明白,连接数据库代码及跟据前台发送过来的q参数查询相应的数据库结果:

代码如下

sql="Select * FROM CUSTOMERS Where CUSTOMERID="

sql=sql & request.querystring("q")

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("ajaxjiaocheng.mdb"))

set rs = Server.CreateObject("ADODB.recordset")

rs.Open sql, conn

接着要注意的就是这行代码:

Response.CharSet = "GB2312" ‘这句很关键,解决ajax中文乱码

很多人在使用AJAX过程中,经常都会遇到ajax中文显示变成乱码的问题,其实在ASP+AJAX应用中很容易解决这个问题,只需要在Response.Write语句输出中文内容前加入这行代码,就可以轻松解决ajax中文乱码问题。

继续讲解下段代码,就是显示相应的数据库查询结果,关闭数据库连接:

代码如下

if not rs.EOF then

response.write "

编号:"&rs(0)&""

response.write "

名称:"&rs(1)&""

response.write "

点击:"&rs(2)&""

response.write "

介绍:"&rs(3)&""

end if

rs.close

set rs = nothing

conn.close

set conn = nothing

第三步:ASP+AJAX+数据库的实例演示及讲解

一路下来,代码非常精简明了。下面我们再附上数据库表的说明如下:

库名:ajaxjiaocheng.mdb

表名: Customers

字段1:CustomerID 自动编号

字段2:Name 文本格式

字段3:NL 数字格式

字段4:Address 文本格式

看到这里,不知道你是否能理解AJAX的工作原理?建议你动手一步步跟着本教程编写代码并进行测试。

本实例直观的说可以这样理解:

通过index.html页面上的 下拉列表选择触发JS代码中的showCustomer(this.value)事件,将选中的option值脚本之家

由以下的代码传递给ASP文件:

代码如下

var url="getcustomer.asp?sid=" + Math.random() + "&q=" + str

xmlHttp=GetXmlHttpObject(stateChanged)

xmlHttp.open("GET", url , true)

xmlHttp.send(null)

评论: 0 | 引用: 0 | 查看次数: -


版权声明:本文为weixin_36295973原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。