AJAX與XML

AJAX與XML實例:

下面的實例將演示網頁如何通過AJAX 從XML 文件讀取信息:

                                             

本範例由三個部分組成

l  HTML表單頁

#l  PHP頁面

QQ截图20161009174933.png



l  XML檔案

HTML表單頁面

當使用者在上面的下拉清單中選擇某張CD 時,會執行名為"showCD()" 的函數。此函數由 "onchange" 事件觸發:

QQ截图20161009174957.png使用者選擇下拉清單後。呼叫showCD()函數

ShowCD()函數執行下列步驟:

l  檢查是否有CD 被選擇

l  建立XMLHttpRequest 物件

#l  建立在伺服器回應就緒時執行的函數

l  向伺服器上的檔案傳送請求

l  請注意新增至URL 末端的參數(q)(包含下拉清單的內容)

PHP 檔案

上面這段透過JavaScript 呼叫的伺服器頁面是名為"2.php" 的PHP 檔案。

QQ截图20161009175012.pngPHP 腳本載入XML 文檔,"3.xml",執行針對XML 文件的查詢,並以HTML 返回結果:



 

當CD 查詢從JavaScript 傳送到PHP 頁面時,會發生:

l  PHP 建立「3.xml」檔案的XML DOM 物件

l  循環所有"artist" 元素(nodetypes = 1),尋找與JavaScript 所傳資料向符合的名字######l  找到CD 所包含的正確artist#######l  輸出album 的資訊,並傳送到"txtHint" 佔位符######XML檔案#################################該文件包含了有關CD收藏的資料###### ############
繼續學習
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> function showCD(str){ if(str==""){ document.getElementById("txt").innerHTML=""; return; } if(window.XMLHttpRequest){ // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行 xmlhttp=new XMLHttpRequest(); }else{ //IE6,IE5浏览器执行 xmlhttp =new ActiveXObject("MIcrosoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4&&xmlhttp.status==200){ document.getElementById("txt").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","8_2.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> 选择一个CD: <select name="cds" onchange="showCD(this.value)"> <option value="Bob Dylan">Bob Dylan</option> <option value="Bonnie Tyler">Bonnie Tyler</option> <option value="Dolly Parton">Bonnie Tyler</option> </select> </form> </br> <div id="txt"><b>选择下拉列表,显示详细信息</b></div> </body> </html>