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

マリオデザイン

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

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

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

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

  • 2012年4月20日
  • php

今回はデータが入力されているかのチェックとfor文を使って生年月日の選択リストを作ってみたいと思います。

目次
  1. データが入力されているかチェックする
  2. for文を使って生年月日の選択リスト作成
1.データが入力されているかチェックする

お問い合わせフォームにチェック機能は欠かせません。お問い合わせフォームで主に使うチェック機能は、入力されているかどうか、数字で入力されているかどうか、半角英数字で入力されているか、メールアドレスが正しい記述で記入されているかなど、たくさんあります。

一気に覚えると大変なので今回は必要最低限のチェック、入力されているかどうかのチェックを紹介したいと思います。

入力されているかチェックするのはempty() 関数を使用します。

empty() 関数は()内に変数などを入れ、その変数などが0か空ならTRUEを、それ以外はFALSEを返します。

ではチェックしてみたいと思います。まずは入力フォームを作成します。


<form action="#" method="post">
	お名前を入力してください。*必須<input name="namae" type="text" /><br />
    <input name="" type="submit" value="送信" />
</form>
ブラウザで見てみると

お名前を入力してください。*必須


です。

次にデータを受信します。
<?PHP
$namae=$_POST["namae"];
?>
1行テキスト(namae)のデータを変数($namae)にセットしました。

ここからチェックにはいります。if文とempty関数を使ってチェックします。
<?PHP
if(empty($namae)){
	echo "データが入力されていません<br>";
}
else{
	echo"入力された名前は:".$namae."<br>";
}
?>
です。
言葉で説明したいと思います。以前if文は()内が正しければtrue(ifの{}内を実行する)を返し、そうでなければfalse(elseの{}内を実行する)を返すと説明しました。

empty関数は()内の変数が0か空ならTRUEを返しそれ以外はFALSEを返すので、ifに入れ込むと未記入の場合はtrueが返されます。(ifの{}内が実行される)

ですので未記入の場合に出力してほしい文章や実行したい動作をifの{}に記述し、記入されている場合はelseの{}に出力してほしい文章や実行したい動作を入れるということです。

↓↓↓下記に上記と同じPHPの文章を書いていますので先ほど作ったフォームに文字を入れたり入れなかったりしてチェックしてみてください。↓↓↓

データが入力されていません


確認できましたでしょうか?この入力されているかどうかのチェックは必須項目を設定し必須項目にしたものすべてでチェックします。今回はemptyだけですが様々なチェック機能を使ってよりよいフォームを作成してみてください。*あまり入力のチェックを厳しくしすぎると、何回も入力しなおしてくださいがでて、入力している方が「めんどくさいからやめた」とならないように、あまり厳しくならないようにしたり、こちらでできること(全角を半角に変換するなど)はなるべく設定して、使いやすいフォームがいいかなと思います。


2.for文を使って生年月日の選択リスト作成

次はfor文を使って生年月日の選択リスト作成してみたいと思います。これは私がPHPの勉強で一番はじめに「PHPすごい」と思ったことなので無理やり紹介します。

選択リストは<select>と</select>の間にoptionを指定すると以前説明しました。

では作成していきます。1900年~2000年までを選ぶ選択リストを作ります。まずはfor文を使わずに作ってみたいと思います。

<form action="#" method="POST">
    <select name="yyyy">
        <option>1900</option>
        <option>1901</option>
        <option>1902</option>
        <option>1903</option>
        <option>1904</option>
        <option>1905</option>
        <option>1906</option>
        <option>1907</option>
        <option>1908</option>
        <option>1909</option>
        <option>1910</option>
    </select>
</form>
・・・・日が暮れるので10個でやめます。このようにHTMLだけで書こうとするとoptionを1900~2000まで100個書かなくてはならなくとても大変です。

そこで登場するのがPHPのfor文(繰り返し)です。

ではfor文を使用して作ってみます。
<form action="#" method="POST">
	<p>生年月日を選択してください</p>
	<select name="yyyy">
	<?php
	for($i=1900;$i<=2000;$i++){
		echo "<option>$i</option>";
	}
	echo "</select>";
       ?>
</form>
です。

言葉で説明するとfor文は()の条件が満たされている間は{}内の動作を繰り返します。条件の初期値(始まりの数字)は$iは1900です。繰り返す範囲は$iが2000以下の時です。カウント方法は1づつ足していきます。です。

()の条件を満たしている間は{}の動作$iをechoで出力します。となります。条件に数字で入れてみると1900からスタートするので1900<=2000で条件を満たしているので{}の動作を実行します。{}内が実行された後カウント方法の$i++つまり1900に1を足すを行い、繰り返す範囲に戻ります。戻って1901<=2000になりますがこれも条件を満たしているので{}が実行されます。でまたカウント方法に戻ります。この動作を繰り返し2001<=2000になって条件を満たさなくなったら繰り返しは終わります。

ブラウザで見てみます。

生年月日を選択してください



少し書いただけで表示されました。どうですか?感動していただけましたでしょうか?「PHPすげ~」叫びましたか?

では月と日を入れて完成させたいと思います。
<form action="#" method="POST">
	<p>生年月日を選択してください</p>
    
	<select name="yyyy">
	<?php
	for($i=1900;$i<=2000;$i++){
		echo "<option>$i</option>";
	}
	?>
	</select>
	
	<p>月を選択してください</p>
    <select name="mm">
    <?PHP
	for($i=1;$i<=12;$i++){
		echo "<option>$i</option>";
	}
	?>
	</select>
	<p>日付を入れてください</p>
    <select name="dd">
    <?PHP
	for($i=1;$i<=31;$i++){
		echo "<option>$i</option>";
	}
	?>
	</select><br />	
    <input type="submit" value="送信" />
</form>
です。

ブラウザで見てみると

生年月日を選択してください

月を選択してください

日付を入れてください




です。これでfor文を使って生年月日の選択リスト作成の完了です。


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

コメントを残す

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

TRACKBACK_URL