見出し画像

PHPとformタグ(PHP part 2)

PHPではHTML等で作成したフォームからの入力値を取得できるようです。
今回はこの学習内容を簡単にアウトプットします!

お問い合わせフォームをイメージしながらコーディングをしていきます。


●フォームをHTMLで作成

まず手始めにHTMLでニックネームを入力するフォームを作成します。

【sent.php】

<form action="receive.php" method="post"> //actionに送信先を記述

    ニックネームを入力してください
    <input type="text" name="nickname">  //name:入力データに名前をつける
        *shuannoと入力

    <input type="text" name="email">
        *test@test.comと入力

    <input type"submit" value="送信"> //送信ボタン

</form>


●PHPで入力値を受け取る

フォームで送信された値を受け取るには「$_POST」を使用するようです。
「$_POST」は連想配列になっており、「$_POST[〜〜]」のように、<input>等で付与したname属性を指定することで、送信された値を受けとれる仕組みになっています。

【receive.php】

echo $_POST['nickname'];   *shuannoと出力される

echo $_POST['email'];      *test@test.comと出力される

【receive.php】で記述した1行で、入力値を表示することができます。

なぜ、このような記述で入力値が受け取るのでしょうか?
それは、前述したように$_POSTが連想配列になっているため、
$_POST['キー名']と指定することで、そのキーに対応したバリュー(値)が得られるのです。


それでは、実際に入力値を受け取る$_POSTの連想配列の中身を確認します。

array(
    'nickname' => 'shuanno',    // キー名 => 値

    'email' => 'test@test.com'
)

今回の例では、
【sent.php】の<input type="text name="nickname">
で記載したname属性"nickname"を指定してあげることにより、【receive.php】で【sent.php】で入力した値を呼び出せるのです。


●セレクトボックス でも入力値を受け取れる

先ほどの一例はテキストボックスの一例でしたが、セレクトボックス で入力値を送信しても同じことができます。
簡単な例を下に...

【sent.php】

<form action="receive.php" method="post">
    
    <select name="age">  //テキストボックス同様name属性を指定してあげます

        <option value="0"> 0 </option>
        <option value="1"> 1 </option>
        <option value="2"> 2 </option>
                        ・
                        ・    
                        ・
        <option value="99"> 99 </option>
        <option value="100"> 100 </option>
    </select>
</form>

【sent.php】で作成したセレクトボックス からの入力値を【receive.php】で受け取ります。

【receive.php】

echo $_POST['age']  //sent.phpの name="age"からの入力値を表示する

テキストボックスと同様にセレクトボックス の入力値を受け取れることがわかりました。
テキストボックスとセレクトボックス との違いとしては、セレクトボックス で入力値を受け取る際、name属性を指定するのは同じですが、送られてくる値は、<option>タグのvalue属性になります!


本日は以上!
PHPではこの入力値を受け取る仕組みもいろいろ機能があるみたいです。
楽しんで学習を進め、noteでアウトプットさせていただきたいと考えております。
それでは!

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
2
エンジニア転職を目指す23歳 大学での、C言語、C++、Python、Linuxの学習経験あり。 テックキャンプにて、Ruby、javascript、Haml、Scss、SQL、AWS等の学習をしています。 現在は、転職活動と並行してPHPの独学とPythonの復讐をしています!