Formを自動生成するHTML_Quickform。
ルールとかも簡単に設定できるんですけど、日付の必須チェックが標準では備わってないので、
必須にする方法のメモ。
詳細は↓へ
たとえば生年月日を生成してみる。
$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; }
これで何も日付が選択されていない場合は必須チェックの時のようにエラーが出るようになります。
めでたしめでたし。
こんにちは。virapture…
View Comments
formをfromって間違えたことあるのは私だけじゃないはず!><
>りこ
1回はやったことがあるきがする笑
Your article helped me a lot, is there any more related content? Thanks!
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me? https://accounts.binance.com/id/register?ref=WTOZ531Y
I don't think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article. https://accounts.binance.com/uk-UA/register?ref=GJY4VW8W