PHP and AJAX XML教程

來源:互聯網
上載者:User

PHP and AJAX XML教程

在HTML表單
上面的例子中包含一個簡單的HTML表格,並連結到一個JavaScript :

<html><head><script src="selectcd.js"></script></head>
<body>
<form> Select a CD:<select name="cds" onchange="showCD(this.value)"><option value="Bob Dylan">Bob Dylan</option><option value="Bee Gees">Bee Gees</option><option value="Cat Stevens">Cat Stevens</option></select></form>
<p><div id="txtHint"><b>CD info will be listed here.</b></div></p>
</body></html>
  

例如解釋
正如你所看到的,這隻是一個簡單的HTML表單以一個簡單的下拉框中所謂的“光碟” 。

該段以下的形式包含一個專區所謂的“ txtHint ” 。該專區是用作預留位置資訊檢索的網路伺服器。

當使用者選擇的資料,一個函數稱為“ showCD ”執行。執行的職能是引發的“ onchange ”事件。

換句話說:每一次變化的使用者的價值在下拉框中,功能showCD被稱為。




XML檔案
XML檔案是“ cd_catalog.xml ” 。本檔案包含的CD收藏。




的JavaScript
這是JavaScript代碼儲存在檔案中“ selectcd.js ” :

var xmlHttpfunction showCD(str){ xmlHttp=GetXmlHttpObject()if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="getcd.php"url=url+"?q="+strurl=url+"&sid="+Math.random()xmlHttp.onreadystatechange=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(){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;}
    

例如解釋
該stateChanged ( )和GetXmlHttpObject職能是一樣的最後一章,您可以到前一頁解釋這些

該showCD ( )函數

如果一個項目在下拉框中選擇執行的功能如下:

籲請GetXmlHttpObject函數建立一個XMLHTTP物件
界定了網址(檔)傳送給伺服器
添加一個參數( Q )的網址的內容,輸入欄位
添加一個隨機數字,以防止伺服器使用快取檔案
呼叫stateChanged改變時,就會觸發
開幕XMLHTTP物件與特定網址。
發送一個HTTP請求到伺服器


PHP頁面
伺服器分頁所謂的指令碼是一個簡單的PHP檔案名稱為“ getcd.php ” 。

該網頁是PHP寫成的使用XML的DOM載入XML檔案“ cd_catalog.xml ” 。

該代碼運行一個查詢的XML檔案,並傳回的結果為HTML :

<?php$q=$_GET["q"];
$xmlDoc = new DOMDocument();$xmlDoc->load("cd_catalog.xml");
$x=$xmlDoc->getElementsByTagName('ARTIST');
for ($i=0; $i<=$x->length-1; $i++){//Process only element nodesif ($x->item($i)->nodeType==1)  {  if ($x->item($i)->childNodes->item(0)->nodeValue == $q)    {     $y=($x->item($i)->parentNode);    }  }}
$cd=($y->childNodes);
for ($i=0;$i<$cd->length;$i++){ //Process only element nodesif ($cd->item($i)->nodeType==1)  {   echo($cd->item($i)->nodeName);  echo(": ");  echo($cd->item($i)->childNodes->item(0)->nodeValue);  echo("<br />");  } }?>
      

例如解釋
當查詢是發送的JavaScript到PHP頁面以下情況:

PHP的建立一個XML DOM對象的“ cd_catalog.xml ”檔案
所有的“藝術家”的內容( nodetypes = 1 )的環通過找到一個名稱相匹配的一個發出的JavaScript 。
裁談會含有正確的藝術家發現
該專輯的資訊輸出和發送到“ txtHint ”佔位

轉載請註明來自http://www.111cn.net/wy/yw.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.