از AJAX می توان برای ارتباطات تعاملی با یک پایگاه داده استفاده کرد.
مثال پایگاه داده AJAX
مثال زیر نشان می دهد که چگونه یک صفحه وب می تواند اطلاعات را از پایگاه داده با AJAX واکشی کند:
مثال
Alfreds Futterkiste
North/South
Wolski Zajazd
مثال توضیح داده شده – عملکرد showCustomer ()
هنگامی که کاربر مشتری را در لیست کشویی بالا انتخاب می کند ، تابعی به نام showCustomer()
اجرا می شود. عملکرد توسط این onchange
رویداد ایجاد می شود:
نمایش مشتری
function showCustomer(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
}
const xhttp = new XMLHttpRequest();
xhttp.onload = function() {
document.getElementById("txtHint").innerHTML = this.responseText;
}
xhttp.open("GET", "getcustomer.php?q="+str);
xhttp.send();
}
showCustomer()
تابع انجام می دهد به شرح زیر است:
- بررسی کنید مشتری انتخاب شده است
- یک شی X XMLHttpRequest ایجاد کنید
- عملکردی را ایجاد کنید که هنگام آماده شدن پاسخ سرور اجرا شود
- درخواست را به پرونده ای در سرور ارسال کنید
- توجه داشته باشید که یک پارامتر (q) به URL (با محتوای لیست کشویی) اضافه می شود
صفحه سرور AJAX
صفحه موجود در سرور که توسط JavaScript بالا فراخوانی شده است ، یک فایل PHP به نام “getcustomer.php” است.
کد منبع در “getcustomer.php” یک پرس و جو در برابر یک پایگاه داده اجرا می کند و نتیجه را در یک جدول 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>";
?>