| PHP でプルダウンメニューを使って元号(明治、大正‥‥)年月日を入力するフォームを作る。元号の切り替わり(例:昭和 64 年 1 月 7 日=平成元年 1 月 7 日)に注意し、存在しない年月日は入力できないようにする。また、日数は大の月と小の月によって変わるようにし、とくに閏年の 2 月の入力に気をつける。 |
サンプル・プログラム |
|
元号の開始と終了 |
|
|
0125: /** |
|
|
プログラムの部品は、いままで作ってきた「PHP で日本語対応 date を作る」「PHP で年月日を入力」の寄せ集めである。あらたに作るのは、元号の切り替わり(例:昭和 64 年 1 月 7 日=平成元年 1 月 7 日)に注意して年月日のプルダウンを制御する部分である。
まず、元号の開始と終了を求める関数と、元号を西暦年に変換する関数を用意する。 |
元号年月日をプルダウンメニューにする |
|
|
0156: /** |
|
|
プルダウンメニューは、元号(gengo、)年(year)、月(month)、日(day)を別々のタグにする。
ある元号(gengo)の最初の年(元年、1 年)または最終の年以外であれば、その年の開始月($m0)は 1 月、終了月($m1)は 12 月、開始日($d0)は 1 日、終了日はユーザー関数 getDayInMonth の戻り値である。‥‥(A) 最初の年であれば、終了月、終了日は(A)と同じだが、開始月はユーザー関数 getGengoHead の戻り値である。 その元号の最終の年であれば、開始月、開始日は(A)と同じだが、終了月はユーザー関数 getGengoTail の戻り値である。 このプルダウンメニューが変化したら、JavaScript の onChange イベントで submit 駆動し、form 内容を送信するようにしている。これは元号(gengo)、年(year)、月(month)の場合も同様で、これを行うことで、元号・年・月・日を変更した際に再計算を行う。 ただし、いちいちサーバサイドで計算させることはサーバに負荷がかかるので、この処理は、本来はクライアントサイドで JavaScript で行わせるのが良いだろう。JavaScript による処理については、いずれどこかで紹介したい。 |
参考サイト |
|
|
|
参考書籍 |
|
|
|
|
|
|
2009年09月02日 作成
2009年09月02日 更新
Copyright by studio pahoo, (C)2009
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 ★本ページへのご意見・ご質問・お便りは、ここをクリックしてください。 |