ASP+AJAX+ACCESS数据库实例讲解三个步骤分享

所属分类: 网络编程 / AJAX相关 阅读数: 1489
收藏 0 赞 0 分享
看完本篇ajax实例教程,我相信你也可以轻松做出一个初级的AJAX应用。
你也可以直接访问:https://www.jb51.net/codes/57017.html 下载ajax教程的源码示例。
好,下面我们就始一步步让你了解AJAX+ASP基础应用,我们将分三步讲解,如下。
1. 前台AJAX代码(javascript)的创建。
2. 后台服务端ASP AJAX代码的编写。
3. ASP+AJAX+数据库的实例演示及讲解。

第一步:前台AJAX代码(javascript)的创建。
我们先创建一个index.html前台文件,内容代码如下:
复制代码 代码如下:

<html>
<head>
<title>AJAX教程实例-AJAX教程实例-ASP+AJAX+ACCESS数据库应用-脚本之家原创ajax实例教程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<script> var xmlHttp

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.onload=handler
objXmlHttp.onerror=handler
return objXmlHttp
}
}
</script>
<form>请选择用户:
<select name="customers" onchange="showCustomer(this.value)">
<option value="1">脚本之家.by.alixixi.com</option>
<option value="2">哇塞网</option>
<option value="3">收音机</option>
</select>
</form><p>
<div id="txtHint"><b>网站信息...</b></div>
</p></body>
</html>

ajax代码讲解:
关键代码为JS部分,其原理就是创建一个客户的Microsoft.XMLHTTP对象,来完成前台数据与服务端ASP的交互。
然后要注意的就是<select name="customers" onchange="showCustomer(this.value)">
这一行代码,原理就是通过showCustomer(this.value)触发AJAX的前台脚本对象,将用户在下拉列表选择的结果数据通过Microsoft.XMLHTTP发送到服务端处理,再返回到前台ID为txtHint的<div id="txtHint"><b>用户信息...</b></div>层标签显示出来。

第二步:后台服务端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 "<li>编号:"&rs(0)&"</li>"
response.write "<li>名称:"&rs(1)&"</li>"
response.write "<li>点击:"&rs(2)&"</li>"
response.write "<li>介绍:"&rs(3)&"</li>"
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 "<li>编号:"&rs(0)&"</li>"
response.write "<li>名称:"&rs(1)&"</li>"
response.write "<li>点击:"&rs(2)&"</li>"
response.write "<li>介绍:"&rs(3)&"</li>"
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页面上的<select name="customers" onchange="showCustomer(this.value)"> 下拉列表选择触发JS代码中的showCustomer(this.value)事件,将选中的option值<option value="1">脚本之家</option>
由以下的代码传递给ASP文件:
var url="getcustomer.asp?sid=" + Math.random() + "&q=" + str
xmlHttp=GetXmlHttpObject(stateChanged)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)

ASP文件接收到q参数后,输出数据库相应的查询结果,然后js会检查asp的输出状态,如果输出完成后会把结果返回到index.html文件ID为txtHint的标签上。
在网络的世界里,我感觉自己无把不能。
更多精彩内容其他人还在看

理解jquery ajax中的datatype属性选项值

jquery中ajax的dataType属性用于指定服务器返回的数据类型,如果不指定,jQuery 将自动根据HTTP包MIME信息来智能判断,如果datatype选项不填写的话,会将返回的数据当成字符串处理。
收藏 0 赞 0 分享

基于Jquery ajax技术实现间隔N秒向某页面传值

这篇文章给大家介绍jquery ajax技术实现每隔一段时间向某页面传值,以及setinterval()方法的语法介绍,对本文感兴趣的朋友可以参考下
收藏 0 赞 0 分享

通过Ajax两种方式讲解Struts2接收数组表单的方法

使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢?接下来,通过本文给大家介绍通过Ajax两种方式讲解Struts2接收数组表单的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Jquery.history解决ajax的前进后退问题

本文主要给大家介绍基于Jquery.history解决ajax的前进后退问题,涉及到jquery前进后退相关方面的知识,本文内容经典,非常具有参考价值,特此把jquery前进后退相关知识分享在脚本之家网站供大家参考
收藏 0 赞 0 分享

使用HTML5中postMessage知识点解决Ajax中POST跨域问题

这篇文章主要介绍了使用HTML5中postMessage知识点解决Ajax中POST跨域问题的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

谈谈你对aja的理解(一、二)

Ajax是Asynchronous Javascript And XML的缩写,其作用通过Ajax可以使用Javascript语句来调用XMLHttpRequest对象,直接与服务器进行通讯,可以在不重载页面的情况下与服务器交换数据。
收藏 0 赞 0 分享

关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结

最近比较空闲,于是抽个时间整理些关于ajax方法的东东。在项目中经常发现ajax板块好多问题都是属性,方法,事件大小写不区分问题,最终导致了程序运行出现麻烦,下面给大家介绍关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结
收藏 0 赞 0 分享

Ajax请求session失效该如何解决

HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定。但是AJAX却是例外的,所以解决方法是设置响应为session失效。
收藏 0 赞 0 分享

编写轻量ajax组件02--浅析AjaxPro

ajaxpro虽然是一个比较老的组件,不过实现思想和源码还是很有借鉴价值的。接下来通过本篇文章给大家介绍编写轻量ajax组件02--浅析AjaxPro,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

编写轻量ajax组件01-与webform平台上的各种实现方式比较

这篇文章主要介绍了编写轻量ajax组件01-与webform平台上的各种实现方式比较,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多