生年月日をプルダウンで自動で作成:PHP
フォームなどで生年月日を入力してもらうときに
テキストにするか、プルダウンにするか悩んだすえ
やっぱりプルダウンのほーが使いやすいかと思ったので、
今回は生年月日のプルダウンをPHPで自動生成するやり方をメモ。
≫サンプル
PHP記述
西暦
//年のプルダウン
<select name="year">
<option value="">選択</option>
<?php
for ($y=1900;$y<date(Y)+1;$y++){ //(最小値;現在の年;$y++)
$sel="";
//選択された値があれば$selにselected="selected"を格納
if($_SESSION["year"] == $y) { $sel = "selected='selected'"; }
//出力
print '<option value="'.$y.'"'.$sel.'>' . $y . "</option>\n";
}
?>
</select>年
//月のプルダウン
<select name="mon">
<option value="">選択</option>
<?php
for ($m=01;$m<=12;$m++){ //(最小値;最大値;$m++)
$sel = "";
//選択された値があれば$selにselected="selected"を格納
if($_SESSION["mon"] == $m) { $sel = "selected='selected'"; }
//出力
print '<option value="'.sprintf("%02d",$m).'"'.$sel.'>' . sprintf("%02d",$m) . "</option>\n";
}
?>
</select>月
//日のプルダウン
<select name="day">
<option value="">選択</option>
<?php
for ($d=01;$d<=31;$d++){ //(最小値;最大値;$d++)
$sel = "";
//選択された値があれば$selにselected="selected"を格納
if($_SESSION["day"] == $d) { $sel = "selected='selected'"; }
//出力
print '<option value="'.sprintf("%02d",$d).'"'.$sel.'>' . sprintf("%02d",$d) . "</option>\n";
}
?>
</select> 日
てな感じでOK。
sprintf(“%02d”,$m)などの部分に使っている
sprintf()関数は、文字列を指定書式へ整形する関数です。
■指定書式の例
- 「%s」:文字列を出力
- 「%d」:数字を出力
- 「%02d」:2桁の数字を出力します。数字が2桁に満たない場合には0で埋めます。(例:1→01)
- 「%.2f」:小数点2桁までを出力します。(例:3.14159→3.14)
つまりsprintf(“%02d”,$m)という部分は
1/2/3/…..10/11/12/
↓ 上記の書式を変換
01/02/03/…..10/11/12/
というふうに頭に0を挿入する場合に必要になります。



