AJAX — Ma'lumotlar bazasi misoli
AJAX-dan ma'lumotlar bazasi bilan interaktiv muloqot qilish uchun foydalanish mumkin.
AJAX Ma'lumotlar bazasi misoli
Quyidagi misol veb-sahifa AJAX yordamida ma'lumotlar bazasidan qanday qilib ma'lumot olishini ko'rsatib beradi:
Misol
Mijozni tanlang:
Mijoz haqidagi ma'lumotlar bu yerda ko'rsatiladi...
Misol Tushuntirishi — showCustomer() funksiyasi
Foydalanuvchi yuqoridagi ochiladigan ro'yxatdan mijozni tanlaganda, showCustomer() funksiyasi bajariladi. Funksiya onchange hodisasi orqali ishga tushiriladi:
showCustomer
js
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() funksiyasi quyidagilarni bajaradi:
- Mijoz tanlanganligini tekshiradi;
XMLHttpRequestobyektini yaratadi;- Server javobi tayyor bo'lganda bajariladigan funksiyani yaratadi;
- So'rovni serverdagi faylga yuboradi;
- E'tibor bering, URL-ga parametr (
q) qo'shilgan (ochiladigan ro'yxatning mazmuni bilan).
AJAX Server sahifasi
Yuqoridagi JavaScript tomonidan chaqiriladigan server sahifasi "getcustomer.php" deb nomlangan PHP faylidir. "getcustomer.php" kodi ma'lumotlar bazasiga so'rov yuboradi va natijani HTML jadvalida qaytaradi:
php
<?php
$mysqli = new mysqli("servername", "username", "password", "dbname");
if($mysqli->connect_error) {
exit('Ulanib bo\'lmadi');
}
$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>";
?>