PHP AJAX dan XML instance
AJAX dapat digunakan untuk berkomunikasi secara interaktif dengan file XML.
AJAX XML contoh
Contoh berikut akan menunjukkan bagaimana sebuah halaman web melalui AJAX membaca informasi dari sebuah file XML:
contoh
CD info will be listed here...
Contoh menjelaskan - Halaman HTML
Bila pengguna dalam daftar drop-down di atas untuk memilih CD ganda, ia melakukan bernama "showCD ()" fungsi. Fungsi ini dengan acara "onchange" dipicu:
<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>
showCD () fungsi melakukan langkah-langkah berikut:
- Periksa apakah CD tersebut dipilih
- Buat XMLHttpRequest objek
- Membuat fungsi ketika server siap untuk melakukan respon
- Berkas pada server untuk mengirim permintaan
- Harap perhatikan ditambahkan ke akhir dari parameter URL (q) (berisi isi dari daftar drop-down)
file PHP
Server di atas melalui JavaScript memanggil halaman ini disebut "getcd.php" file PHP.
Script PHP untuk memuat dokumen XML, " cd_catalog.xml ", untuk menjalankan query terhadap file XML dan mengembalikan hasil sebagai 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>"); } } ?>
Ketika query CD dikirim dari JavaScript ke halaman PHP akan terjadi:
- PHP membuat XML DOM objek
- Cari semua <artis> elemen dengan JavaScript diberitakan nama pencocokan data yang
- Output album informasi, dan mengirimkan kembali "txtHint" placeholder