AJAX教程(12):AJAX ResponseXML 实例

爱小路哥

爱小路哥

2016-02-20 00:49

今天给大家分享的是由图老师小编精心为您推荐的AJAX教程(12):AJAX ResponseXML 实例,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

与 responseText 以字符串返回 HTTP 响应不同,responseXML 以 XML 返回响应。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

ResponseXML 属性返回 XML 文档对象,可使用 W3C DOM 节点树的方法和属性来检查和解析该对象。

AJAX ResponseXML 实例

在下面的 AJAX 实例中,我们将演示网页如何使用 AJAX 技术从数据库中读取信息。这次,这些从数据库中选取的数据将被转换为 XML 文档,然后我们将使用 DOM 来提取要显示的值。

选取下拉列表中的名称

AJAX 实例解释

上面的例子包含一个 HTML 表单,若干个保留所返回数据的 span 元素,以及指向一段 JavaScript 的链接:

htmlheadscript src="selectcustomer_xml.js"/script/headbodyform action="" label选择客户:select name="customers" onchange="showCustomer(this.value)"option value="ALFKI"Alfreds Futterkiste/optionoption value="NORTS "North/South/optionoption value="WOLZA"Wolski Zajazd/option/select/label/formbspan id="companyname"/span/bbr /span id="contactname"/spanbr /span id="address"/spanspan id="city"/spanbr/span id="country"/span/body/html

上面的例子包含了一个 HTML 表单,该表单带有一个名为 "customers" 下拉框。

当用户选取下拉框中的客户时,函数 "showCustomer()" 就会被执行。事件 "onchange" 会触发该函数执行。换句话说,每当用户改变下拉框中的值时,函数 showCustomer() 就会被调用。

下面列出了 JavaScript 代码。

AJAX JavaScript

这是存储在文件 "selectcustomer_xml.js" 中的 JavaScript 代码:

var xmlHttpfunction showCustomer(str){ xmlHttp=GetXmlHttpObject();if (xmlHttp==null)  {  alert ("Your browser does not support AJAX!");  return;  }var url="getcustomer_xml.asp";url=url+"?q="+str;url=url+"&sid="+Math.random();xmlHttp.onreadystatechange=stateChanged;xmlHttp.open("GET",url,true);xmlHttp.send(null);}function stateChanged() { if (xmlHttp.readyState==4){var xmlDoc=xmlHttp.responseXML.documentElement;document.getElementById("companyname").innerHTML=xmlDoc.getElementsByTagName("compname")[0].childNodes[0].nodeValue;document.getElementById("contactname").innerHTML=xmlDoc.getElementsByTagName("contname")[0].childNodes[0].nodeValue;document.getElementById("address").innerHTML=xmlDoc.getElementsByTagName("address")[0].childNodes[0].nodeValue;document.getElementById("city").innerHTML=xmlDoc.getElementsByTagName("city")[0].childNodes[0].nodeValue;document.getElementById("country").innerHTML=xmlDoc.getElementsByTagName("country")[0].childNodes[0].nodeValue;}}function GetXmlHttpObject(){var xmlHttp=null;try  {  // Firefox, Opera 8.0+, Safari  xmlHttp=new XMLHttpRequest();  }catch (e)  {  // Internet Explorer  try{xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}  catch (e){xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}  }return xmlHttp;}

showCustomer() 和 GetXmlHttpObject() 与上一节相同。stateChanged() 函数稍早前也在本教程中使用过。不过,这次我们通过 responseXML 以 XML 文档返回结果,并使用 DOM 来提取要显示的值。

AJAX 服务器页面

这个被 JavaScript 调用的服务器页面,是名为 "getcustomer_xml.asp" 的简单 ASP 文件。

该页面使用 VBScript 编写,针对 Internet 信息服务器 (IIS)。可以用 PHP 或其他服务器语言,简单地重写该页面。

请看在 PHP 中对应的例子(测试:缺具体页面)。

这段代码执行针对数据库的 SQL 查询,并以 XML 文档返回结果:

%response.expires=-1response.contenttype="text/xml"sql="SELECT * FROM CUSTOMERS "sql=sql & " WHERE CUSTOMERID='" & request.querystring("q") & "'"on error resume nextset conn=Server.CreateObject("ADODB.Connection")conn.Provider="Microsoft.Jet.OLEDB.4.0"conn.Open(Server.Mappath("/db/northwind.mdb"))set rs=Server.CreateObject("ADODB.recordset")rs.Open sql, connif err  0 thenresponse.write(err.description)set rs=nothingset conn=nothingelseresponse.write("?xml version='1.0' encoding='ISO-8859-1'?")response.write("company")response.write("compname" &rs.fields("companyname")& "/compname")response.write("contname" &rs.fields("contactname")& "/contname")response.write("address" &rs.fields("address")& "/address")response.write("city" &rs.fields("city")& "/city")response.write("country" &rs.fields("country")& "/country")response.write("/company")end ifon error goto 0%

请注意上面的 ASP 代码中的第二行:response.contenttype="text/xml"。ContentType 属性为 response 对象设置了 HTTP 内容类型。该属性的默认值是 "text/html"。这次我们把内容类型设置为 XML。

然后我们从数据库中选取数据,并使用这些数据构建 XML 文档。

展开更多 50%)
分享

猜你喜欢

AJAX教程(12):AJAX ResponseXML 实例

Web开发
AJAX教程(12):AJAX ResponseXML 实例

AJAX教程(3):AJAX实例

Web开发
AJAX教程(3):AJAX实例

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

AJAX教程(11):AJAX XML 实例

Web开发
AJAX教程(11):AJAX XML 实例

AJAX教程(8):AJAX 请求实例

Web开发
AJAX教程(8):AJAX 请求实例

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

AJAX、AJAX实例及AJAX源代码

Web开发
AJAX、AJAX实例及AJAX源代码

AJAX教程(10):AJAX 数据库实例

Web开发
AJAX教程(10):AJAX 数据库实例

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何延长固态硬盘期限

如何延长固态硬盘期限

iframe创建智能表单

iframe创建智能表单
下拉加载更多内容 ↓