AJAX XML
Contoh PHP - AJAX dengan XML
AJAX boleh digunakan untuk berkomunikasi secara interaktif dengan fail XML.
Contoh XML AJAX
Contoh berikut akan menunjukkan cara halaman web membaca maklumat daripada fail XML melalui AJAX:
Contoh
Penjelasan contoh - halaman HTML
Apabila pengguna berada dalam Apabila CD dipilih dalam senarai juntai bawah di atas, fungsi bernama "showCD()" akan dilaksanakan. Fungsi ini dicetuskan oleh acara "onchange":
<html> <head> <script> function showCD(str) { if (str=="") { document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","getcd.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> Select a CD: <select name="cds" onchange="showCD(this.value)"> <option value="">Select a CD:</option> <option value="Bob Dylan">Bob Dylan</option> <option value="Bonnie Tyler">Bonnie Tyler</option> <option value="Dolly Parton">Dolly Parton</option> </select> </form> <div id="txtHint"><b>CD info will be listed here...</b></div> </body> </html>
fungsi showCD() akan melaksanakan langkah berikut:
semak Sama ada CD dipilih
Mencipta objek XMLHttpRequest
Mencipta fungsi yang dilaksanakan apabila respons pelayan sedia
-
Hantar permintaan kepada fail pada pelayan
Sila ambil perhatian parameter (q) yang ditambahkan pada hujung URL (mengandungi kandungan senarai juntai bawah)
Fail PHP
Halaman pelayan yang dipanggil di atas melalui JavaScript ialah fail PHP bernama "getcd.php".
Skrip PHP memuatkan dokumen XML, "cd_catalog.xml", menjalankan pertanyaan terhadap fail XML dan mengembalikan hasil dalam 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++) { // 处理元素节点 if ($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++) { // 处理元素节点 if ($cd->item($i)->nodeType==1) { echo("<b>" . $cd->item($i)->nodeName . ":</b> "); echo($cd->item($i)->childNodes->item(0)->nodeValue); echo("<br>"); } } ?>
Apabila pertanyaan CD dihantar daripada JavaScript ke halaman PHP, apa yang berlaku:
PHP mencipta objek XML DOM
Mencari semua elemen <artis> Nama yang sepadan dengan data yang diluluskan oleh JavaScript
mengeluarkan maklumat album dan menghantar semula pemegang tempat "txtHint"
Tutorial video berkaitan yang disyorkan: "Tutorial AJAX"http://www.php.cn/course/list/25.html