مثال - AJAX و XML

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
۱مقدمه‌ای بر AJAX
۲AJAX و PHP
۳AJAX و پایگاه داده
۴AJAX و XML
۵جستجوی دیداری AJAX
۶نظرسنجی با AJAX
مثال‌های PHP
مرجع PHP


از AJAX می‌توان برای ارتباطات تعاملی با یک فایل XML استفاده کرد.[۱]

مثال XML در AJAX

مثال زیر نحوه دریافت اطلاعات از یک فایل XML با استفاده از AJAX را در یک صفحه وب را توضیح می‌دهد:

مثال

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.


اطلاعات cd در اینجا لیست خواهد شد.

توضیح مثال - صفحه HTML

زمانی که یک کاربر یک CD را در منوی بازشوی بالا انتخاب می‌کند، تابعی به نام "showCD()" اجرا می‌شود. رویداد "onchange" موجب اجرای این تابع می‌شود:

 1 <html>
 2 <head>
 3 <script>
 4 function showCD(str) {
 5   if (str=="") {
 6     document.getElementById("txtHint").innerHTML="";
 7     return;
 8   }
 9   if (window.XMLHttpRequest) {
10     // code for IE7+, Firefox, Chrome, Opera, Safari
11     xmlhttp=new XMLHttpRequest();
12   } else {  // code for IE6, IE5
13     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
14   }
15   xmlhttp.onreadystatechange=function() {
16     if (this.readyState==4 && this.status==200) {
17       document.getElementById("txtHint").innerHTML=this.responseText;
18     }
19   }
20   xmlhttp.open("GET","getcd.php?q="+str,true);
21   xmlhttp.send();
22 }
23 </script>
24 </head>
25 <body>
26 
27 <form>
28 Select a CD:
29 <select name="cds" onchange="showCD(this.value)">
30 <option value="">Select a CD:</option>
31 <option value="Bob Dylan">Bob Dylan</option>
32 <option value="Bee Gees">Bee Gees</option>
33 <option value="Cat Stevens">Cat Stevens</option>
34 </select>
35 </form>
36 <div id="txtHint"><b>CD info will be listed here...</b></div>
37 
38 </body>
39 </html>

تابع showCD() مراحل زیر را انجام می‌دهد:

  • بررسی می‌کند که آیا CD ای انتخاب شده‌است
  • ساخت یک شیء XMLHttpRequest
  • ساخت تابعی که می‌بایست زمانی که پاسخ سرور آماده است، اجرا شود.
  • ارسال درخواست به فایل روی سرور
  • توجه داشته باشید که یک پارامتر (q) به URL (با محتوای منوی بازشو) اضافه شده‌است.

فایل PHP

صفحه‌ای که به وسیله کد جاوا اسکریپت بالا فراخوانی می‌شود "getcd.php" نامیده می‌شود.

اسکریپت PHP یک سند XML که محتوی، "cd_catalog.xml"، را بارگذاری می‌کند، یک پرس جو پیرامون فایل XML اجرا می‌کند، و نتیجه را به صورت HTML برمی‌گرداند:

 1 <?php
 2 $q=$_GET["q"];
 3 
 4 $xmlDoc = new DOMDocument();
 5 $xmlDoc->load("cd_catalog.xml");
 6 
 7 $x=$xmlDoc->getElementsByTagName('ARTIST');
 8 
 9 for ($i=0; $i<=$x->length-1; $i++) {
10   //Process only element nodes
11   if ($x->item($i)->nodeType==1) {
12     if ($x->item($i)->childNodes->item(0)->nodeValue == $q) {
13       $y=($x->item($i)->parentNode);
14     }
15   }
16 }
17 
18 $cd=($y->childNodes);
19 
20 for ($i=0;$i<$cd->length;$i++) {
21   //Process only element nodes
22   if ($cd->item($i)->nodeType==1) {
23     echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
24     echo($cd->item($i)->childNodes->item(0)->nodeValue);
25     echo("<br>");
26   }
27 }
28 ?>

زمانی که پرس و جوی CD از جاوا اسکریپت به صفحه PHP ارسال می‌شود، مراحل زیر اتفاق می‌افتد:

  1. PHP یک شیء XML DOM ایجاد می‌کند
  2. تمامی عناصر <artist> که با نامی که توسط جاوا اسکریپت ارسال شده‌است، همخوانی دارد را پیدا می‌کند.
  3. اطلاعات آلبوم را در خروجی چاپ می‌کند. (به متن راهنمای "txtHint" ارسال می‌کند)


منابع آموزشی