مثال على قاعدة بيانات أجاكس
يمكن استخدام AJAX للتواصل التفاعلي مع قاعدة البيانات.
مثال على قاعدة بيانات أجاكس
سيوضح المثال التالي كيف يمكن لصفحة الويب جلب المعلومات من قاعدة بيانات باستخدام AJAX:
مثال
Customer info will be listed here...
شرح المثال - وظيفة 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()
الوظيفة بما يلي:
- تحقق مما إذا تم اختيار العميل
- قم بإنشاء كائن 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>";
?>