PHPを使ってフォームで値を送ってみよう

Go Yoshiwara

Go Yoshiwara

今日はフォームを使って、入力された値をPHPに送ってそれを表示してみようと思う。

この手の動きは、メールフォームやコメントの投稿フォームなんかで使われているので、ちゃんと覚えておかないとね。

まずは送信フォームを作る

この部分はHTMLだから、特に問題は無いな。

<form name="value" method="post" action="result.php">

名前
<input name="名前" type="text" />

フリガナ
<input name="フリガナ" type="text" />

性別
<input type="radio" name="性別" value="男" checked="checked" />男
<input type="radio" name="性別" value="女" />女

住所
<select name="住所">
<option value="北海道">北海道</option>
<option value="長野">長野</option>
<option value="東京">東京</option>
<option value="沖縄">沖縄</option>
</select>

<input type="submit" value="送信" />

</form>

こんな感じでオッケー。

これで、入力された値がresult.phpに飛んでいくというわけですね。

次に値を受け取るPHPを作る

送られた値は、$_POSTというスーパーグローバル変数(?)に配列として(?)格納されるみたいです。

なので、$_POSTの中身を変数に格納してあげて、それをprintで表示させてみました。

<?php

  $name = $_POST['名前'];
  $kana = $_POST['フリガナ'];
  $sex = $_POST['性別'];
  $address = $_POST['住所'];

  print($name."<br>");
  print($kana."<br>");
  print($sex."<br>");
  print($address."<br>");

?>

これで問題なく、送られた値が表示されました。

でも、これだとただ中身が表示されるだけなので使い勝手が悪いし、あんまりソースも綺麗じゃないので、foreachを使って、$_POSTの中身を取り出したいと思います。

<?php
    foreach($_POST as $key => $val){
  	       echo $key." : ".$val."<br>";
  	}
?>

これだと値とname属性を

名前 : 太郎
フリガナ : タロウ

といった感じで取り出せるので便利ですね。

実働サンプル

今回作ったフォームの実働サンプルはコチラ

今回の反省点・失敗点

上記の書き方でフォームを作ったのに、送信ボタンを押しても何もでなかった。

書き方は間違えていないのに・・・。

原因は、文字コード。

HTMLファイルはUTF-8で、PHPはshift_jisで作っていたみたい。

そのせいで、name属性が文字化けして、読み込めなかったみたいだ。

でも、foreachで回していると、ふたつのファイルの文字コードが違っていても問題無かった。

うーん。

微妙な違いだけど、文字コードは気をつけないとな。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

1982年生まれ。信濃中学校卒業。フリーターとして23歳まで様々な職業に従事し数々のスキルを身につける。ウェブデザイナーとして活躍したのち、25歳で起業し代表取締役に就任(会長を経て2022年に退任)。自然あふれる場所で生まれ、アウトドアスポーツをして育ったが故にITの道を志したが、近年、再びアウトドアな環境、遊び、生き方を模索して長野県に移住。わくわくするものをつくり続けていたい。

このメンバーの記事をもっと読む