<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[无爱的天空 - Ajax]]></title>
<link>http://www.51oyf.com/</link>
<description><![CDATA[千夫所指 问心无愧]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[9337719@qq.com(NetFox)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>无爱的天空</title>
	<url>http://www.51oyf.com/images/logos.gif</url>
	<link>http://www.51oyf.com/</link>
	<description>无爱的天空</description>
</image>

			<item>
			<link>http://www.51oyf.com/article/Ajax/193.html</link>
			<title><![CDATA[ajax+asp实现无刷新读取数据]]></title>
			<author>9337719@qq.com(netfox)</author>
			<category><![CDATA[Ajax]]></category>
			<pubDate>Sat,13 Aug 2016 00:35:36 +0800</pubDate>
			<guid>http://www.51oyf.com/default.asp?id=193</guid>
		<description><![CDATA[这是关于用ajax+asp实现无刷新读取数据的方法，主要是分为三个步骤1. 前台AJAX代码（javascri&#112;t）的创建。 2. 后台服务端ASP AJAX代码的编写。 3. ASP+AJAX+数据库的实例演示及讲解<br/>1. 前台AJAX代码（javascri&#112;t）的创建。 <br/>2. 后台服务端ASP AJAX代码的编写。 <br/>3. ASP+AJAX+数据库的实例演示及讲解。<br/>第一步：前台AJAX代码（javascri&#112;t）的创建。 <br/>我们先创建一个index.html前台文件，内容代码如下：<br/> 代码如下&#160;&#160;&#160;&#160;<br/>&lt;html&gt; <br/>&lt;head&gt; <br/>&lt;title&gt;AJAX教程实例-AJAX教程实例-ASP+AJAX+ACCESS数据库应用-脚本之家原创ajax实例教程&lt;/title&gt; <br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34; /&gt; <br/>&lt;/head&gt; <br/>&lt;body&gt; <br/>&lt;script&gt; var xmlHttp<br/>function showCustomer(str) <br/>{ <br/>var url=&#34;getcustomer.asp?sid=&#34; + Math.random() + &#34;&amp;q=&#34; + str <br/>xmlHttp=GetXmlHttpObject(stateChanged) <br/>xmlHttp.open(&#34;GET&#34;, url , true) <br/>xmlHttp.send(null) <br/>}<br/>function stateChanged() <br/>{ <br/>if (xmlHttp.readyState==4 || xmlHttp.readyState==&#34;complete&#34;) <br/>{ <br/>document.getElementById(&#34;txtHint&#34;).innerHTML=xmlHttp.responseText <br/>} <br/>}<br/>function GetXmlHttpObject(handler) <br/>{ <br/>var objXmlHttp=null<br/>if (navigator.userAgent.indexOf(&#34;Opera&#34;)&gt;=0) <br/>{ <br/>alert(&#34;This example doesn&#39;t work in Opera&#34;) <br/>return; <br/>} <br/>if (navigator.userAgent.indexOf(&#34;MSIE&#34;)&gt;=0) <br/>{ <br/>var strName=&#34;Msxml2.XMLHTTP&#34;<br/>if (navigator.appVersion.indexOf(&#34;MSIE 5.5&#34;)&gt;=0) <br/>{ <br/>strName=&#34;Microsoft.XMLHTTP&#34; <br/>} <br/>try <br/>{ <br/>objXmlHttp=new ActiveXObject(strName) <br/>objXmlHttp.onreadystatechange=handler <br/>return objXmlHttp <br/>} <br/>catch(e) <br/>{ <br/>alert(&#34;Error. Scripting for ActiveX might be disabled&#34;) <br/>return <br/>} <br/>} <br/>if (navigator.userAgent.indexOf(&#34;Mozilla&#34;)&gt;=0) <br/>{ <br/>objXmlHttp=new XMLHttpRequest() <br/>objXmlHttp.onload=handler <br/>objXmlHttp.onerror=handler <br/>return objXmlHttp <br/>} <br/>} <br/>&lt;/script&gt; <br/>&lt;form&gt;请选择用户: <br/>&lt;sel&#101;ct name=&#34;customers&#34; onchange=&#34;showCustomer(this.value)&#34;&gt; <br/>&lt;option value=&#34;1&#34;&gt;脚本之家.by.alixixi.com&lt;/option&gt; <br/>&lt;option value=&#34;2&#34;&gt;哇塞网&lt;/option&gt; <br/>&lt;option value=&#34;3&#34;&gt;收音机&lt;/option&gt; <br/>&lt;/sel&#101;ct&gt; <br/>&lt;/form&gt;&lt;p&gt; <br/>&lt;div id=&#34;txtHint&#34;&gt;&lt;b&gt;网站信息...&lt;/b&gt;&lt;/div&gt; <br/>&lt;/p&gt;&lt;/body&gt; <br/>&lt;/html&gt;<br/>ajax代码讲解： <br/>关键代码为JS部分，其原理就是创建一个客户的Microsoft.XMLHTTP对象，来完成前台数据与服务端ASP的交互。 <br/>然后要注意的就是&lt;sel&#101;ct name=&#34;customers&#34; onchange=&#34;showCustomer(this.value)&#34;&gt; <br/>这一行代码，原理就是通过showCustomer(this.value)触发AJAX的前台脚本对象，将用户在下拉列表选择的结果数据通过 Microsoft.XMLHTTP发送到服务端处理，再返回到前台ID为txtHint的&lt;div id=&#34;txtHint&#34;&gt;&lt;b&gt;用户信息...&lt;/b&gt;&lt;/div&gt;层标签显示出来。<br/>第二步：后台服务端ASP AJAX代码的编写。 <br/>创建完刚才的index.html，我们接着再创建一个getcustomer.asp文件，请确认你的ASP环境一切OK：） <br/>getcustomer.asp的代码如下：<br/> 代码如下&#160;&#160;&#160;&#160;<br/>&lt;% <br/>sql=&#34;Sel&#101;ct * FROM CUSTOMERS Wh&#101;re CUSTOMERID=&#34; <br/>sql=sql &amp; request.querystring(&#34;q&#34;) <br/>set conn=Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;) <br/>conn.Provider=&#34;Microsoft.Jet.OLEDB.4.0&#34; <br/>conn.Open(Server.Mappath(&#34;ajaxjiaocheng.mdb&#34;)) <br/>set rs = Server.Cr&#101;ateObject(&#34;ADODB.recordset&#34;) <br/>rs.Open sql, conn <br/>Response.CharSet = &#34;GB2312&#34; <br/>if not rs.EOF then <br/>response.write &#34;&lt;li&gt;编号：&#34;&amp;rs(0)&amp;&#34;&lt;/li&gt;&#34; <br/>response.write &#34;&lt;li&gt;名称：&#34;&amp;rs(1)&amp;&#34;&lt;/li&gt;&#34; <br/>response.write &#34;&lt;li&gt;点击：&#34;&amp;rs(2)&amp;&#34;&lt;/li&gt;&#34; <br/>response.write &#34;&lt;li&gt;介绍：&#34;&amp;rs(3)&amp;&#34;&lt;/li&gt;&#34; <br/>end if <br/>rs.close <br/>set rs = nothing <br/>conn.close <br/>set conn = nothing <br/>%&gt;<br/>ajax代码讲解： <br/>如果有asp基础的朋友一看就能明白，连接数据库代码及跟据前台发送过来的q参数查询相应的数据库结果：<br/> 代码如下&#160;&#160;&#160;&#160;<br/><br/>sql=&#34;Sel&#101;ct * FROM CUSTOMERS Wh&#101;re CUSTOMERID=&#34; <br/>sql=sql &amp; request.querystring(&#34;q&#34;) <br/>set conn=Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;) <br/>conn.Provider=&#34;Microsoft.Jet.OLEDB.4.0&#34; <br/>conn.Open(Server.Mappath(&#34;ajaxjiaocheng.mdb&#34;)) <br/>set rs = Server.Cr&#101;ateObject(&#34;ADODB.recordset&#34;) <br/>rs.Open sql, conn<br/>接着要注意的就是这行代码： <br/>Response.CharSet = &#34;GB2312&#34; ‘这句很关键，解决ajax中文乱码 <br/>很多人在使用AJAX过程中，经常都会遇到ajax中文显示变成乱码的问题，其实在ASP+AJAX应用中很容易解决这个问题，只需要在Response.Write语句输出中文内容前加入这行代码，就可以轻松解决ajax中文乱码问题。<br/>继续讲解下段代码，就是显示相应的数据库查询结果，关闭数据库连接：<br/> 代码如下&#160;&#160;&#160;&#160;<br/>if not rs.EOF then <br/>response.write &#34;&lt;li&gt;编号：&#34;&amp;rs(0)&amp;&#34;&lt;/li&gt;&#34; <br/>response.write &#34;&lt;li&gt;名称：&#34;&amp;rs(1)&amp;&#34;&lt;/li&gt;&#34; <br/>response.write &#34;&lt;li&gt;点击：&#34;&amp;rs(2)&amp;&#34;&lt;/li&gt;&#34; <br/>response.write &#34;&lt;li&gt;介绍：&#34;&amp;rs(3)&amp;&#34;&lt;/li&gt;&#34; <br/>end if <br/>rs.close <br/>set rs = nothing <br/>conn.close <br/>set conn = nothing<br/>第三步：ASP+AJAX+数据库的实例演示及讲解<br/>一路下来，代码非常精简明了。下面我们再附上数据库表的说明如下：<br/>库名:ajaxjiaocheng.mdb <br/>表名: Customers<br/>字段1:CustomerID 自动编号 <br/>字段2:Name 文本格式 <br/>字段3:NL 数字格式 <br/>字段4:Address 文本格式 <br/>看到这里，不知道你是否能理解AJAX的工作原理？建议你动手一步步跟着本教程编写代码并进行测试。<br/>本实例直观的说可以这样理解： <br/>通过index.html页面上的&lt;sel&#101;ct name=&#34;customers&#34; onchange=&#34;showCustomer(this.value)&#34;&gt; 下拉列表选择触发JS代码中的showCustomer(this.value)事件，将选中的option值&lt;option value=&#34;1&#34;&gt;脚本之家&lt;/option&gt; <br/>由以下的代码传递给ASP文件：<br/> 代码如下&#160;&#160;&#160;&#160;<br/>var url=&#34;getcustomer.asp?sid=&#34; + Math.random() + &#34;&amp;q=&#34; + str <br/>xmlHttp=GetXmlHttpObject(stateChanged) <br/>xmlHttp.open(&#34;GET&#34;, url , true) <br/>xmlHttp.send(null)]]></description>
		</item>
		
</channel>
</rss>
