Skip to content

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;
  • XMLHttpRequest obyektini 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>";
?>