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

JavaScriptでPOST送信する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptでPOST送信する方法について現役エンジニアが解説しています。POST送信とは、データをサーバーへ送る機能のことです。JavaScriptのAJAXを使ってPHPファイルと連帯し、POST送信を実現させましょう。

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

監修してくれたメンター

nakamoto

アジマッチ有限会社代表取締役社長。書籍化歓迎。対応業務:PHP(Laravel)、機械学習、Vue.js、LAMP・AWS、越境EC、CTO、エンジニア採用、CTO、経営者の不安解決コンサルティング。

JavaScriptでPOST送信する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

JavaScriptでPOST送信することで、Webページのデータをサーバに送信できます。

実務でもサーバとデータ連携することが多いので、ぜひ学習してみてくださいね。

目次

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

 

田島悠介

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

大石ゆかり

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

田島悠介

JavaScriptでPOST送信する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

POSTとは

POSTとは、通信規格であるHTTP通信内で、Webページの中でサーバ(Webサーバ)とクライアント(ブラウザなど)とのやりとりに利用する1つの機能です。

ブラウザの表示方法として、GETという機能を使ってブラウザが「このURLのページを送って!」とリクエストを出し、Webサーバが指定されたURLのページをクライアントに送信し、ブラウザ上で目的のページが表示されます。

GETは主にサーバへWebページなどのデータをリクエストする際に利用するものであり、POSTは逆にデータを送信する際に使います。

POSTは、Webの掲示板などで文章を投稿する際などに利用されています。

 

JavaScriptでPOST送信する方法

POST送信を行うには、HTMLのフォームを利用するなど様々な方法があるものの、JavaScriptでPOST送信したい場合もあります。

例えば、Webアプリケーションの中には、ボタンを押した際に画面の遷移は行わないけど、画面の一部を書き換えたい場合などは、JavaScriptを使ってPOST送信をすることが可能です。

今回は簡単な数値計算アプリケーションを使って、JavaScriptによるPOST送信の方法を見ていきましょう。

今回作成する数値計算アプリケーションでは、入力欄が3つあり、1つ目と2つ目に数値を入れましょう。

計算ボタンを押すと、3つ目の入力欄に2つの値を足した計算結果が表示されます。

画面は以下の通りです。

JavaScriptのPOST送信で使う、HTMLのサンプル。

 

[PR] コーディングで副業する方法とは

実際に書いてみよう

それでは実際に、JavaScriptでPOST送信する方法を実装してみます。

送信されたデータはサーバ側でPHPのプログラムにより処理されます。

 

数値計算アプリケーションの例

今回作成した数値計算アプリケーションのソースコードは、HTMLファイルとJavaScriptファイル、サーバ側のPHPファイルです。

サーバ側PHPサンプルコード

<?php

$arg1 = $_POST['arg1'];
$arg2 = $_POST['arg2'];

$answer = $arg1 + $arg2;

echo $answer;

HTMLサンプルコード

<!DOCTYPE html> 
<html lang="ja"> 
  <head> 
    <meta charset="utf-8"> <title>計算機アプリ</title> <script src="script.js"></script> 
  </head> 
<body>
 <input id="arg1" type="number"> + <input id="arg2" type="number"> = <input id="answer" type="number"> <br/>
 <button id="calc_button">計算</button> 
</body>
</html>

JavaScriptサンプルコード

window.onload = function() {
  // 計算ボタンを押した際の動作を設定
  document.getElementById('calc_button').onclick = function() {
    post();
  };

  xhr = new XMLHttpRequest();

  // サーバからのデータ受信を行った際の動作
  xhr.onload = function (e) {
    if (xhr.readyState === 4) {
      if (xhr.status === 200) {
        var answer = document.getElementById('answer');
        answer.value = xhr.responseText;
      }
    }
  };
};

// 計算ボタンを押した際の動作
function post() {
  xhr.open('POST', 'calc.php', true);
  xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
  // フォームに入力した値をリクエストとして設定
  var request = "arg1=" + arg1.value + "&arg2=" + arg2.value;
  xhr.send(request);
}

サーバ側のPHP解説

サーバ側のPHPファイルでは、POSTで受け取った2つの値を画面に表示させました。

2つの変数、&arg1と&arg2がJavaScriptから送られてくる2つの値で、それらを足し合わせた結果を$answerに入れ、画面に表示しています。

 

HTML解説

HTMLファイルでは、画面上に3つのinput要素と計算ボタンを配置しています。

arg1, arg2とIDが振ってあるinput要素が足し合わせる数値の入力欄、IDがanswerのinput要素が答えを表示するinput要素です。

 

JavaScript解説

コード上では、window.onloadにHTMLファイルがすべて読み込まれた際の動作を設定している状態です。

内部では、計算ボタンを押した際の動作やPOST通信の結果がサーバから帰ってきた際の動作について規定しています。

計算ボタンを押した際の動作は、指定したサーバへinput要素に入力された値をPOSTで送信するというものです。

今回、JavaScriptでPOST通信を行うにあたってAjaxを使用する方法を採用しています。

Ajaxは、非同期にサーバとの通信を行うことで、ユーザの操作を中断させることなくサーバでの処理結果を画面に反映させることのできる手法です。

また、Ajaxを利用するためにXMLHttpRequestを使用しています。

ここではXMLHttpRequestインスタンスの新規作成を行い、xhr.onloadにサーバからデータ受信を行った際の動作を設定しました。

内容としては、データ受信を行った際に答え表示用のinput要素に、サーバから受信した計算結果を設定しています。

この一連の処理によって、数値入力⇒POSTリクエスト送信⇒計算結果表示という処理の流れが実現しています。

 

表示結果

 

まとめ

今回はJavaScriptでPOST送信する方法などについて解説しました。

  • POSTとは
  • JavaScriptでPOST送信する方法

JavaScriptでPOST送信するためには、サーバ側で受け取るプログラムが必要でした。

今回は、PHPを利用してサーバ側のデータ連携を行いました。

ぜひ、JavaScriptでPOST送信を使用する方法を有効に使ってみてください。

 

大石ゆかり

JavaScriptでPOST送信する方法が分かりやすくて良かったです!

田島悠介

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

大石ゆかり

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

 

JavaScriptを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのフロントエンドコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaScript・jQueryを使ったWebサービス開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!