引越しました!

http://blog.mogmet.com/blog-entry-52.html

へアクセスしてください。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【PHP】QuickformでDateの必須チェックをする

Formを自動生成するHTML_Quickform

ルールとかも簡単に設定できるんですけど、日付の必須チェックが標準では備わってないので、

必須にする方法のメモ。




詳細は↓へ

quickformのDATEを必須にする方法























たとえば生年月日を生成してみる。

$form = new HTML_QuickForm('formName', 'post');
$option = array(
'emptyOptionText' => '-',
'addEmptyOption' => true,
'format' => 'Y 年 m 月 d 日',
'minYear' => date('Y') + 10,
'maxYear' => date('Y') - 100
);
$form->addElement('date', 'date', '生年月日', $option);
// 必須ルールの登録
$form->registerRule('daterequired', 'callback', 'isPostDate', get_class());
$form->addRule('birthday', '生年月日を選択してください。', 'daterequired');



optionで空の値を入れていることに注目です。
あとで空かどうかをチェックします。


ということで肝心のチェックする関数は以下の感じ

/** 
* QuickFormでdateの生成は空値でPOSTされてもrequiredチェックしないので無理やり値をチェックする
*
* @param array $birthday
*
* @return void
*/
public function isPostDate(array $birthday)
{
foreach ($birthday as $key => $val) {
if (empty($val)) {
return false;
}
}
return true;
}





これで何も日付が選択されていない場合は必須チェックの時のようにエラーが出るようになります。

めでたしめでたし。

コメントの投稿

非公開コメント

No title

formをfromって間違えたことあるのは私だけじゃないはず!><

No title

>りこ
1回はやったことがあるきがする笑
スポンサーリンク
FC2カウンター
最新記事
最新コメント
カテゴリ
アマゾンドリンク
検索フォーム
リンク
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1936位
アクセスランキングを見る>>

[サブジャンルランキング]
未設定
--位
アクセスランキングを見る>>
バックリンク
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。