AJAX Приклад бази даних
AJAX можна використовувати для інтерактивного спілкування з базою даних.
AJAX Приклад бази даних
Наступний приклад демонструє, як вебсторінка може отримати інформацію з бази даних за допомогою AJAX:
Пояснення прикладу - Функція showCustomer()
Коли користувач вибирає клієнта зі спадного списку вище, виконується функція під назвою showCustomer()
. Функція запускається подією onchange
:
showCustomer
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.html?q="+str);
xhttp.send();
}
Функція showCustomer()
виконує наступне:
- Перевіряє, чи вибрано клієнта
- Створює об’єкт XMLHttpRequest
- Створює функцію, яка буде виконана, коли відповідь сервера буде готова
- Надсилає запит у файл на сервері
- Зверніть увагу, що до URL-адреси (з вмістом спадного списку) додано параметр (q).
Сторінка сервера AJAX
Сторінка на сервері, викликана JavaScript вище, є файлом PHP під назвою "getcustomer.html".
Вихідний код у "getcustomer.html" виконує запит до бази даних і повертає результат у таблиці 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>";
?>
Примітка. Приклади працюють лише на сервері з підтримкою PHP.