AJAXデータベースの例
AJAXは、データベースとの対話型通信に使用できます。
AJAXデータベースの例
次の例は、Webページが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.php?q="+str);
xhttp.send();
}
このshowCustomer()
関数は次のことを行います。
- 顧客が選択されているかどうかを確認する
- XMLHttpRequestオブジェクトを作成する
- サーバーの応答が準備できたときに実行する関数を作成する
- サーバー上のファイルにリクエストを送信する
- パラメータ(q)がURLに追加されていることに注意してください(ドロップダウンリストの内容を含む)。
AJAXサーバーページ
上記のJavaScriptによって呼び出されるサーバー上のページは、「getcustomer.php」というPHPファイルです。
「getcustomer.php」のソースコードは、データベースに対してクエリを実行し、結果をHTMLテーブルに返します。
<?php
$mysqli = new mysqli("<em>servername</em>", "<em>username</em>", "<em>password</em>", "<em>dbname</em>");
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>";
?>
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。