Manual belajar ...login
Manual belajar kendiri lengkap PHP
pengarang:php.cn  masa kemas kini:2022-04-15 13:53:54

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


Maklumat CD akan disenaraikan di sini...



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:

  1. PHP mencipta objek XML DOM

  2. Mencari semua elemen <artis> Nama yang sepadan dengan data yang diluluskan oleh JavaScript

  3. mengeluarkan maklumat album dan menghantar semula pemegang tempat "txtHint"

Tutorial video berkaitan yang disyorkan: "Tutorial AJAX"http://www.php.cn/course/list/25.html

Laman web PHP Cina