TECH I.S.

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>"; ?>


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細