AJAX ma’lumotlar bazasi
AJAX’dan ma’lumotlar bazasi bilan interaktiv aloqa qilish uchun foydalanish mumkin.
AJAX ma’lumotlar bazasi misoli
Quyidagi misol veb-sahifa AJAX yordamida ma’lumotlar bazasidan qanday qilib ma’lumot olishi mumkinligini ko‘rsatadi:
Misol tushuntirilishi - showCustomer() funksiyasi
Foydalanuvchi yuqoridagi ochiladigan ro‘yxatdan mijozni tanlaganda "showCustomer()" nomli funksiya bajariladi. Funksiya "onchange" hodisasi orqali ishga tushadi:
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() funksiyasi quyidagilarni bajaradi:
- Mijoz tanlanganligini tekshirish
- XMLHttpRequest obyektini yaratish
- Server javobi tayyor bo‘lganda bajariladigan funksiyani yaratish
- So‘rovni serverdagi faylga yuborish
- E’tibor bering, URL’ga (ochiladigan ro‘yxat qiymati bilan) parametr (q) qo‘shiladi
AJAX server sahifasi
Yuqoridagi JavaScript chaqiradigan serverdagi sahifa "getcustomer.php" nomli PHP fayldir.
"getcustomer.php" faylidagi manba kodi ma’lumotlar bazasiga so‘rov yuboradi va natijani HTML jadvalda qaytaradi:
<?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>";
?>
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
