オーダーメイドコース
icon
icon

PHPでAjax通信を使う方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPでAjax通信を使う方法について現役エンジニアが解説しています。Ajax(エイジャックス)通信とは、JavaScriptなど様々な技術を組み合わせて、クライアントとサーバ間を非同期で通信するモデルのことです。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、PHPでAjax通信を使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

PHPについてそもそもよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPでAjax通信を使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

Ajaxとは

Ajax(エイジャックス)とは、「Asynchronous JavaScript + XML」の略称でJavaScriptなど様々な技術を組み合わせて、クライアントとサーバ間を非同期で通信するモデルのことです。

Ajax通信がまだ行われていなかった時代は、データの更新などを行う場合には別のページを読み込むか再読込みを行う必要がありました。

地図アプリで例えると、「現在地から少し離れた場所を地図で表示するには、ページの更新を行う」などの手間が発生します。

 

Ajax通信を行うことで、データの更新を行うためにページの再読み込みなどの処理が必要なくなり、動的に表示内容を変更できるようになりました。

Ajax通信を使用しているアプリケーションでは、GoogleMapなどが代表的で、地点の移動を行うと新しい地図の表示をページの再読み込みなどをしなくとも動作します。

 

Ajax通信を使う方法

Ajax通信で送られてきたデータをPHPで受け取るためには、

  • HTTPのリクエストメソッドがGETの場合は「$_GET」
  • HTTPのリクエストメソッドがPOSTの場合は「$_POST」

という2つのスーパーグローバル変数を使用して値を受け取ることができます。

 

[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

実際にAjax通信で送られてきたデータをPHPプログラムで受け取ってみましょう。

<?php
// ①Ajax通信でPOSTされたデータを受け取る
$postData1 = $_POST['postData1'];
$postData2 = $_POST['postData2'];
// ②受け取ったデータを配列に格納
$result = array("postData1の値:". $postData1, "postData2の値:". $postData2);
// ③ヘッダーの設定
header('Content-type:application/json; charset=utf8');
// ④JSON形式にして返却
echo json_encode($result);
?>

上記の例では、Ajax通信で送られてきたデータを受け取り、加工し、JSON形式で送信元に返却しました。

①では$_POSTを使用して値を受け取り、[]の中は送信元が設定したキー名を指定します。

②では受け取ったデータ返却用のデータとして加工しました。

③ではJSON形式で返却するためにヘッダーを設定しています。

④ではJSONにエンコードして返却しました。

 

執筆してくれたメンター

平野大輝(ひらのだいき)

スキル:PHP・Java・JavaScriptを用いて様々なアプリを開発するWebエンジニア。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも、PHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。