お問い合わせフォームの作り方⑤「教えてマリオ」

マリオデザイン

マリオデザインスタッフブログ「教えてマリオ」

ホーム>>教えてマリオトップ>>お問い合わせフォームの作り方⑤

このブログはマリオデザインアルバイトスタッフがこれからWEbを勉強してみたいと思われている方や会社でホームページの更新業務を担当されているがよく意味が分からないという方のために、ホームページ作成の基礎を綴っていくものです。 難しい言葉を使わず(使えない)噛み砕いた言葉で書いていくので、参考になればと思います。
*勉強中の為、間違った解釈を説明すると思いますので、ご指摘コメントもお待ちしておいります。

お問い合わせフォームの作り方⑤

  • 2012年4月18日
  • php

前回の投稿でフォームを説明しましたが、今回はフォームのデータを受信したいと思います。

目次
  1. データを受信する
  2. 受信したデータを変数にセット
1.データを受信する

少し復習ですが、formの中のデータはformの中に作られている送信ボタン(type=”submit”)をクリックしたらactionで指定したページにmethodで指定された方法で送られると説明しました。

今回はその送られたデータを受信します。

formからpostで送信されたデータは、特別な配列(変数は箱と説明したが配列はタンスのようなものです。引き出しが何個もあるイメージです。)に格納されています。

受信するためには

$_POST[“name名”]

で受信します。

イメージ的には$_POSTというタンスの中からname(引き出しの名前)を指定してデータを受信す感じですかね。


2.受信したデータを変数にセット

では実際にformのデータを送信し受信して変数にセットしてみたいと思います。

入力フォームの作成

<form action="#" method="post">
    お名前入力<input name="namae" type="text" /><br />
    電話番号<input name="tel" type="text" /><br />
    <p> お住まいは</p>
    <input type="checkbox" name="address1" value="東京" />東京<br />
    <input type="checkbox" name="address2" value="福岡" />福岡<br />
    <input type="checkbox" name="address3" value="アメリカ" />アメリカ<br />
    <input name="sousin" type="submit" value="送信" /><input name="" type="reset" value="リセット" />
</form>

これをブラウザで見ると

お名前入力
電話番号

お住まいは

東京
福岡
アメリカ


です。
何もレイアウトしていないの地味ですが今回はこれで進みます。

上記はformの中に1行テキストが2つとチェックボックスが3つと送信ボタンとリセットボタンが作られています。受信するときに必要なのでnameは必ず入れておきましょう。actionの部分の#は今回は練習ですのでこのページにデータを送るという意味で使用しています。

それでは受信したデータを変数にセットしてみたいと思います。

<?PHP
$namae=$_POST["namae"];
$tel=$_POST["tel"];
$address1=$_POST["address1"];
$address2=$_POST["address2"];
$address3=$_POST["address3"];
?>
こんな感じです。

formからpostで送信されたデータは、特別な配列(変数は箱と説明したが配列はタンスのようなもの、引き出しが何個もあるイメージです)に格納されてくるのでそのタンスから各nameを指定してデータを受信し、同じ名前の変数に入れた状態です。(わかりやすくするため同じ名前の変数にしています。)変数にセットしておけば使いまわしが簡単になります。

では本当に受信できているのかechoで書き出して確認してみたいと思います。

<?PHP 
echo "お名前は".$namae."です<br />";
echo "電話番号は".$tel."です<br />";
echo $address1."が選択されました。<br />";
echo $address2."が選択されました。<br />";
echo $address3."が選択されました。<br />";
?>
これで先ほど作った入力フォームにデータを入力し送信ボタンを押してください。
↓↓↓↓↓下記に上記と同じコードを記述していますので(PHPなのでソースに表示されませんが)フォームに入力したものが表示されれば、データは受信されていることになりますね。↓↓↓↓↓

お名前はです
電話番号はです
が選択されました。
が選択されました。
が選択されました。


受信を確認されたら、1行テキストは入力されたデータが送られてきて、チェックボックスはvalueのデータを送られてきていることを確認しておいてください。

最後にもう一つ紹介しておきます。今回受信したデータをnameと同じ変数にセットしました。

このように同じ名前の変数にセットする場合に限りextract()関数を使うと簡単にできます。
エクストラクト?ハリーポッターにでてくる魔法のような名前ですが、
<?PHP
extract($_POST);
?>
と書くとname名と同じ変数を作成してくれます。

先ほどは
<?PHP
$namae=$_POST["namae"];
$tel=$_POST["tel"];
$address1=$_POST["address1"];
$address2=$_POST["address2"];
$address3=$_POST["address3"];
?>
と書きました。内容は全くおんなじです。しかし書く量をくらべるとこれだけでもだいぶ違いますが、受信するデータがもっとたくさんある場合は大変便利ですね。

今回はさわりだけでしたが、上記で作成したフォームの入力項目を増やしたり、デザインしたものがお問い合わせフォームになります。


このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

TRACKBACK_URL