PHP أجاكس ومثيل XML
أجاكس يمكن استخدامها للتواصل تفاعلي مع ملف XML.
المثال XML AJAX
والأمثلة التالية شرح كيفية صفحة ويب عن طريق أجاكس قراءة المعلومات من ملف XML:
أمثلة
CD info will be listed here...
أمثلة توضح - صفحة HTML
عندما يقوم المستخدم في القائمة المنسدلة أعلاه لاختيار قرص مزدوج، فإنه ينفذ المسمى "showCD) (" وظيفة. يتم تشغيل هذه الوظيفة عن طريق الحدث "عند_التغيير":
<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 () تنفيذ الخطوات التالية:
- تحقق ما إذا كان يتم تحديد القرص
- إنشاء كائن مدعوم
- إنشاء وظيفة عندما يكون الملقم جاهز لأداء استجابة
- ملف على الملقم لإرسال الطلبات
- يرجى ملاحظة تضاف إلى نهاية معلمة URL (ف) (يحتوي على محتويات القائمة المنسدلة)
ملف PHP
خوادم المذكورة أعلاه من خلال جافا سكريبت يدعو هذه الصفحة يسمى "getcd.php" ملف PHP.
النصي PHP لتحميل وثيقة 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++) { // 处理元素节点 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>"); } } ?>
عند إرسال الاستعلام CD من جافا سكريبت لصفحة PHP سوف يحدث:
- PHP خلق XML كائن DOM
- البحث عن <الفنان> العنصر مع بشر جافا سكريبت أسماء مطابقة البيانات
- انتاج ألبوم المعلومات، ويرسل الى الوراء "txtHint" نائبا