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

看完本篇ajax实例教程,我相信你也可以轻松做出一个初级的AJAX应用。
你也可以直接访问:http://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的标签上。
在网络的世界里,我感觉自己无把不能。

(0)

相关推荐

  • 使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题该如何解决

    无聊做了个www.jiazhuangma.com,技术不过关写不好后台,就想直接读wordpress里的数据.做ajax读后台数据时在网上随便搜了一段代码使用wordpress $wpdb类读mysql数据库,就是这么一随便,搜到了别人的去头去尾的code,开始了我的改错之旅. 主要问题有: 1,non-object 2,json中汉字,/被转码 3,chrome可以正常访问php文件,ie显示http 404,ajax时头部显示404,但是响应正文正确,是我想要的json. 先贴上网上搜到的代

  • ajax+asp无限级分类树型结构(带数据库)

    IE测试通过,FF有点小BUG Cls_Leibie.asp 复制代码 代码如下: <% '数据库字段为类属性,添加.删除.修改.操作检查等函数为类的方法 Class Cls_Leibie Private nClassID,sClassName,nParentID,sParentPath,nDepth,nRootID,nChild,nOrderID,sFilePath '定义私有变量(类的属性,即数据库字段对应的变量) Private rs,sql,ErrorStr Private Sub Cl

  • ajax php 实现写入数据库

    首先需要一个带输入表格. 复制代码 代码如下: <!-- To change this template, choose Tools | Templates and open the template in the editor. --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title

  • ajax读取数据库内容实现二级联动下拉选择菜单示例

    复制代码 代码如下: <PRE class=javascript name="code"></PRE><PRE class=javascript name="code">---------------------这是ajax(javascript)代码---------------------------</PRE><PRE class=javascript name="code">&l

  • Ajax动态加载数据库示例

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title

  • ajax 数据库中随机读取5条数据动态在页面中刷新

    不能用数据库中的Top,后面发现了用这样一个方法可以实现...现就这个方法总结写了一个页面.有兴趣的朋友们可以一起学习下.... 前台代码:  复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajaxRandomData.aspx.cs" Inherits="ajaxRandomData" %> <!DOCTYPE html

  • jquery+ajax+C#实现无刷新操作数据库数据的简单实例

    我们知道同步执行和异步执行的区别,为了更好的提高用户的体验,我们都会采用异步方式去处理一些问题,毕竟单线程的同步可能回造成卡死等现象,很不友好,所以可以使用ajax来完成用户的体验,现在我们就来说说如何使用jquery的ajax来实现无刷新的获取内容 我们只是单方面的获取内容,分页等就不考虑了,后期会讲到无刷新的分页 页面中我们放置一个Div容器用来存放返回的内容 <div id="comment"><img src="images/Wait.gif&quo

  • 基于asp+ajax和数据库驱动的二级联动菜单

    index.asp 页面代码 复制代码 代码如下: <!--#include file="conn.asp" --> <% set cmd = conn.execute("select bigclassid,bigclassname from bigclass") tempid=cmd("bigclassid") %> <select name="menu" onChange="gets

  • AJAX 自学练习 无刷新提交并修改数据库数据并显示

    request.jsp页面中有rocarsId,和ccrn两个text. 对应在数据库中表格 rocars表的msg_id,ccrn两个字段.现在要实现在界面上修改ccrn的值,ajax提交到response.jsp页面,并调用RocarsEntiy.updateCcrn方法更新对应的ccrn,最后无刷新显示 代码: request.jsp 复制代码 代码如下: <%@ page language="java" contentType="text/html; chars

  • ajax对注册名进行验证检测是否存在于数据库中

    这个是我在网上看到的一个有错的ajax 我改正确了,却找不到那个帖子了. 用servlet验证: 复制代码 代码如下: package Servlet; import java.io.*; import java.sql.*; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import jav

  • ajax异步刷新实现更新数据库

    上篇文章都是关于界面的东西,下面写关于如何把无刷新的把数据写入到数据库中. 当我们改变某一个人或某几个人的某项分值实现无刷新写入数据库. 首先,我们需要声明XMLHttpRequest对象 复制代码 代码如下: //声明XMLHttpRequest对象 var xmlHttp; function createXMLHTTP() { if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); //Mozilla浏览器 } else if

  • ajax 登录功能简单实现(未连接数据库)

    简单的登录功能(未连接数据库) 复制代码 代码如下: <script src="Jquery1.7.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $('#tijiao').click(function () { var username = $('#username').val(); va

  • AJAX自学练习 无刷新从数据库后台取数据显示

    请求页面request.jsp 复制代码 代码如下: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3

随机推荐