مثال پایگاه داده در AJAX

از موتو کد، دانشنامهٔ برنامه‌نویسی

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

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

یک مشتری را انتخاب کنید:

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


توضیح مثال – تابع showCustomer()

زمانی که کاربر یک مشتری را از طریق منوی کشویی بالا انتخاب می‌کند، تابعی به نام showCustomer() اجرا می‌شود. این تابع توسط رویداد onchange اجرا می‌شود:

showCustomer

function showCustomer(str) {
  var xhttp;
  if (str == "") {
    document.getElementById("txtHint").innerHTML = "";
    return;
  }
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    document.getElementById("txtHint").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "getcustomer.php?q="+str, true);
  xhttp.send();
}


مشاهدهٔ نتیجه


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

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

صفحه سرور AJAX

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

کد موجود در فایل "getcustomer.php" یک درخواست (query) را در پایگاه داده اجرا می‌کند و نتیجه را در یک جدول HTML برمی‌گرداند:

<?php
$mysqli = new mysqli("servername", "username", "password", "dbname");
if($mysqli->connect_error) {
  exit('Could not connect');
}

$sql = "SELECT customerid, companyname, contactname, address, city, postalcode, country
FROM customers WHERE customerid = ?";

$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $_GET['q']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($cid, $cname, $name, $adr, $city, $pcode, $country);
$stmt->fetch();
$stmt->close();

echo "<table>";
echo "<tr>";
echo "<th>CustomerID</th>";
echo "<td>" . $cid . "</td>";
echo "<th>CompanyName</th>";
echo "<td>" . $cname . "</td>";
echo "<th>ContactName</th>";
echo "<td>" . $name . "</td>";
echo "<th>Address</th>";
echo "<td>" . $adr . "</td>";
echo "<th>City</th>";
echo "<td>" . $city . "</td>";
echo "<th>PostalCode</th>";
echo "<td>" . $pcode . "</td>";
echo "<th>Country</th>";
echo "<td>" . $country . "</td>";
echo "</tr>";
echo "</table>";
?>

منابع آموزشی