مثال پایگاه داده در 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>";
?>

منابع آموزشی[ویرایش]