UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#136 PHPとAJAXで非同期通信をする例

記入日:2023-05-24 編集日:2023-05-24

PHPとAJAXで非同期通信をする例を解説してみようと思います。

この記事を読むと(約5分)
PHPとAJAXで非同期通信をする方法をイメージできます。

PHPとAjaxを使用して非同期通信を行う例

この例では、ユーザがフォームに入力したデータを非同期でサーバに送信し、PHPで処理して結果を返すというシンプルなケースを考えます。

まず、HTML側のフォームとJavaScriptのコードです。

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
  <title>Ajax Example</title>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $(document).ready(function() {
      // フォームの送信イベントを処理
      $('#myForm').submit(function(e) {
        e.preventDefault(); // フォームのデフォルトの送信をキャンセル

        // フォームデータを取得
        var formData = $(this).serialize();

        // Ajaxリクエストの送信
        $.ajax({
          url: 'process.php', // PHPスクリプトのパス
          type: 'POST', // リクエストメソッド
          data: formData, // 送信データ
          success: function(response) {
            // レスポンスの処理
            $('#result').text(response);
          }
        });
      });
    });
  </script>
</head>
<body>
  <form id="myForm">
    <input type="text" name="name" placeholder="名前">
    <button type="submit">送信</button>
  </form>
  <div id="result"></div>
</body>
</html>

次に、Ajaxリクエストを受け取り処理するPHPスクリプトの例です。

<!-- process.php -->
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  // フォームデータの取得
  $name = $_POST['name'];

  // データの処理
  // ここでは単純に入力された名前を大文字に変換して返す
  $response = strtoupper($name);

  // レスポンスの返却
  echo $response;
}
?>

この例では、フォームに入力された名前を非同期でサーバに送信し、PHPスクリプトが受け取ります。PHPスクリプトは、受け取った名前を大文字に変換し、その結果をAjaxのレスポンスとして返します。JavaScriptのコードでは、Ajaxリクエストを作成し、成功時にレスポンスを画面上に表示します。

注意点として、この例ではjQueryを使用していますが、他のAjaxライブラリやフレームワークを使用する場合には、それに応じた方法で非同期通信を実装する必要があります。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。