国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

AJAX教程(12):AJAX ResponseXML 實例

2024-09-01 08:26:06
字體:
來源:轉載
供稿:網友

與 responsetext 以字符串返回 http 響應不同,responsexml 以 xml 返回響應。

responsexml 屬性返回 xml 文檔對象,可使用 w3c dom 節點樹的方法和屬性來檢查和解析該對象。

ajax responsexml 實例

在下面的 ajax 實例中,我們將演示網頁如何使用 ajax 技術從數據庫中讀取信息。這次,這些從數據庫中選取的數據將被轉換為 xml 文檔,然后我們將使用 dom 來提取要顯示的值。

選取下拉列表中的名稱

ajax 實例解釋

上面的例子包含一個 html 表單,若干個保留所返回數據的 <span> 元素,以及指向一段 javascript 的鏈接:

<html><head><script src="selectcustomer_xml.js"></script></head><body><form action=""> <label>選擇客戶:<select name="customers" onchange="showcustomer(this.value)"><option value="alfki">alfreds futterkiste</option><option value="norts ">north/south</option><option value="wolza">wolski zajazd</option></select></label></form><b><span id="companyname"></span></b><br /><span id="contactname"></span><br /><span id="address"></span><span id="city"></span><br/><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 文檔。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 姜堰市| 大关县| 水富县| 西吉县| 阿巴嘎旗| 大同市| 乡宁县| 广南县| 健康| 河间市| 南康市| 沁阳市| 凤庆县| 阳山县| 南雄市| 慈溪市| 乌拉特中旗| 阿拉善左旗| 浮山县| 石阡县| 丰镇市| 曲靖市| 察雅县| 临清市| 镇远县| 湾仔区| 双辽市| 靖宇县| 阿尔山市| 通许县| 长寿区| 彝良县| 墨竹工卡县| 阜阳市| 满洲里市| 浠水县| 聂拉木县| 政和县| 从江县| 渭南市| 南溪县|