PHP – زبان XML و AJAX

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

مثال AJAX با XML

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

<html>
<head>
<script>
function showCD(str) {
  if (str == "") {
    document.getElementById("txtHint").innerHTML = "";
    return;
  }
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("txtHint").innerHTML = this.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="Bee Gees">Bee Gees</option>
    <option value="Cat Stevens">Cat Stevens</option>
  </select>
</form>
<div id="txtHint"><b>CD info will be listed here...</b></div>

</body>
</html>

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

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

تابع showCD()

این تابع کارهای زیر را انجام می‌دهد:

  1. بررسی می‌کند که آیا یک CD انتخاب شده است.
  2. ایجاد یک شیء XMLHttpRequest
  3. ایجاد تابعی که هنگام آماده شدن پاسخ سرور اجرا شود.
  4. ارسال درخواست به یک فایل در سرور.
  5. اضافه کردن یک پارامتر (q) به URL (با محتوای لیست کشویی)

فایل PHP

صفحه‌ای که توسط جاوااسکریپت فراخوانی می‌شود، یک فایل PHP به نام getcd.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 ارسال می‌شود، مراحل زیر انجام می‌شود:

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

این روش به شما امکان می‌دهد تا به صورت دینامیک و بدون نیاز به بارگذاری مجدد کل صفحه، اطلاعات را از فایل XML واکشی و نمایش دهید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.