この記事はだいたい 4 分ほどで読めます。
jQueryで非同期通信を行い画面の表示をしてみました。
確認した環境
- OS Windows10
- XAMPP ver.7.4.6

目次
仕様

マウスカーソルを[姓]または[名]に合わせた時に、DBから非同期処理でデータを取得して表示する。
姓をマウスオーバーしたら姓が表示され、名の時は名前を表示するようにします。
こんな感じのものを作ってみます。
コーディング
html
任意の場所にhtmlファイル作って保存します。
<!DOCTYPE html>
<html lang="jp">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
</html>bodyにタグを配置していきます。
文字の表示をするところと、切り替えをするところをそれぞれ配置します。
  <body>
    <div id="text">
      <p id="name">
        こちらは初期画面です。
      </p>
    </div>
    <div class="box" id="last">
      姓
    </div>
    <div class="box" id="first">
      名
    </div>
  </body>確認してみます。

先ほど配置したものが表示されました。
このままだと見づらいのでCSSを適用します。
CSS
htmlファイルと同じフォルダ内にcssファイルを保存します。
* {
    margin : 0;
    padding: 0;
}
div {
    margin       : 3px;
    padding      : 3px;
    border       : 1px solid;
    width        : 200px;
    border-radius: 4px;
}
.box {
    color           : whitesmoke;
    background-color: blue;
    margin          : 3px;
    padding         : 3px;
    width           : 30px;
    height          : 30px;
    float           : left;
    text-align      : center;
}
.box:hover {
    cursor          : pointer;
    color           : gray;
    background-color: skyblue;
}divタグのサイズと色を設定して位置も調整しています。
ホバーの処理も記述しています。
このファイルを読み込むようにhtmlファイルを修正します。
    <title>Document</title>
    <link rel="stylesheet" href="style.css" />
ファイルを保存して確認してみます。

反映されました。
divタグに色がついた状態で表示されています。
姓がホバーされた状態になっています。
次にデータを取得する処理を作成します。
PHP
htmlファイルと同じフォルダに次のphpファイルを保存します。
<?php
$conn = mysqli_connect("localhost", "root", "", "testdb");
//1行データ取得
$sql = "SELECT * FROM users LIMIT 1";
$ret = mysqli_query($conn, $sql);
if (mysqli_num_rows($ret) > 0) {
    while ($rows = mysqli_fetch_assoc($ret)) {
        if ($_GET['name'] == 1) {
            echo $rows['user_first'];
        } else {
            echo $rows['user_last'];
        }
    }
} else {
    echo '取得失敗';
}
mysqli_close($conn);
SELECT文を発行してデータを1行取得して、取得したデータを出力しています。
表示する値をGETされたパラメータで切り替えています。
では、jQuery部分を記述します。
htmlファイルのヘッダにスクリプトを追加します。
jQuery
    <link rel="stylesheet" href="style.css" />
    <script
      src="https://code.jquery.com/jquery-3.5.1.min.js"
      integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
      crossorigin="anonymous"
    ></script>
    <!-- マウスオーバーの処理 -->
    <script>
      $(document).ready(function () {
        $("#first").mouseover(function () {
          $("#name").load("user.php?name=1");
        });
        $("#last").mouseover(function () {
          $("#name").load("user.php?name=2");
        });
      });
    </script>
  </head>divタグをマウスオーバーした時にphpファイルをloadするようにしました。
動かして確認してみます。
確認
[姓]をマウスオーバーした処理です。

表示が切り替わりました。
姓が表示されています。
続いて[名]をマウスオーバーした処理。

こちらもOKそうです。
名前が表示されました。
まとめ
非同期処理を試してみました。
今回分かったことはjQueryを使うには HTML,CSS,JavaScriptの理解が必要ということです。
私にはちょっとハードルが高い気がしました。
おわり。
 
  
  
  
  
 