PHP HTMLからデータを受け取る方法。(POST)

PHPでHTMLからデータを受け取るには、フォームとスーパーグローバル変数を使います。まずはプログラムを動かしてみましょう。

今回はもっとも簡単な例として、計算は足し算に限定しました。また未入力のチェックも行っていません。その分プログラムがシンプルなので、フォームとスーパーグローバル変数の関係を理解しやすいと思います。


【1】test フォルダの中に sample007 フォルダを新たに作成します。

php-39.gif


【2】sample007 フォルダの中に calc.html と calc.php を新たに作成します。

php-40.gif

*「\」はWindowsではエンマークのことです。

保存先 C:\phpdev\www\test\sample007
ファイル名 calc.html

<html>
  <head>
    <title>calc.html</title>
  </head>
  <body>
    <form name="form1" action="calc.php" method="post">
      <input type = "text" name = "txtA"> + 
      <input type = "text" name = "txtB"> = ? 
      <br>
      <input type="submit" value="計算">
    </form>
  </body>
</html>


保存先 C:\phpdev\www\test\sample007
ファイル名 calc.php

<html>
  <head>
    <title>calc.php</title>
  </head>
  <body>
    <?php
      $a = $_POST['txtA'];
      $b = $_POST['txtB'];
      $c = $a + $b;
      print ($a." + ".$b." = ".$c."\n");
    ?>
  </body>
</html>



*上記のプログラムはページの都合上、インデント(字下げ)が半角スペース2つになっていますが、実際には半角スペース4つにするのが好ましいです。インデントはプログラムの動作には影響しません。


【3】C:\phpdev にある 2K-NT-XP-phpdev_start.bat をダブルクリックして、phpdev を起動します。

php-02.gif

準備ができたら作成したPHPプログラムを実行してみましょう。


【4】ブラウザのアドレスに http://localhost/test/sample007/calc.html と入力し、実行します。


【5】calc.html の画面が表示されました。

php-41.gif


【6】テキストボックスに半角数字を入力します。

php-42.gif


【7】「計算」ボタンをクリックします。

php-43.gif


【8】ブラウザのアドレスが calc.php に変わっていることを確認します。

php-44.gif


【9】計算結果が表示されました。

php-45.gif


【10】ブラウザの「戻る」ボタンをクリックします。

php-46.gif


【11】calc.html に戻りました。

php-47.gif


【12】テキストボックスの値をいろいろ変えて、動作を確認してください。


テキストボックスの入力チェックはしていないので、未入力があった場合は計算がおかしくなります。
php-48.gif


【解説】

■calc.html側

(1)formタグで囲んだ中にある部品の値は、PHPで変数として受け取れます。 action で処理を渡すPHPを指定し、 method で渡し方を指定しています。

<form name="form1" action="calc.php" method="post">
省略
<input type="submit" value="計算">
</form>

*method には post と get があります。


(2)部品の名前はPHP側で受け取る時、配列のキーとなりますので重要です。
<input type = "text" name = "txtA">
<input type = "text" name = "txtB">


■calc.php側

(1)$_POST はスーパーグローバル変数といい、フォームから送られてきた値を連想配列として持っています。連想配列から値を取り出すときは、フォームの部品に付けた名前をキーとして指定します。取り出した値は変数に代入しておいて、プログラムで使いやすいようにしています。
$a = $_POST['txtA'];
$b = $_POST['txtB'];

*method にget を指定した場合や、URL を使って値を渡す場合は $_GET を使います。

URLで値を渡す例 URL?変数名=値&変数名=値
http://localhost/test/sample007/calc.php?txtA=10&txtB=20


(2)代入しておいた変数を使って計算し、画面に出力しています。
$c = $a + $b;
print ($a." + ".$b." = ".$c."\n");


【ワンポイント】
データの受け渡しにはいくつかパターンがあります。今回の例は1でした。
1.HTML → PHP
2.他のPHP → PHP
3.PHP → PHP(自身)

他にも、クッキーやセッションを使ってデータを受け渡しできますが、その方法はまたの機会に解説します。


スポンサードリンク

スポンサードリンク






PHP初心者入門講座TOPへ