2009年11月24日

[PHP] HTML_QuickFormで複数グループのエラーチェック

HTML_QuickFormを使ったんだけども、エラーチェックのメソッドが用意されてて便利!!

でも、下のようなフォームを作った時のエラーチェックでちょっと詰まった。

あなたがエンディングを見たのは?
※回答は必須です。
帝国さくらすみれマリアアイリス紅蘭カンナ織姫レニ
巴里エリカグリシーヌコクリコロベリア北大路花火
紐育ジェミニサジータリカリッタダイアナ

みたいな、わかりやすくするために、同じ質問なんだけども小見出しをつけたいってフォームの場合、もともとあるエラーチェックの必須チェックとかが使えない。
マニュアル読まずに、なんとなく山勘でフォーム要素を配列にするとかやってみたけど上手く動かなかったので・・・

function validate() {
if (parent::validate()) {
return true;
} else {
return $this->commonValidationAreaRule();
}
}

みたいな感じで、継承元のエラーチェックに追加するってので実装した。

一応ソース
function commonValidationAreaRule() {
$validate_flg = true;
if ( $this->_errors['member_teigeki'] && $this->_errors['member_paris'] && $this->_errors['member_newyork']) {
$this->_errors['member_teigeki'] = 'セガサターンしろ';
$validate_flg = false;
} else {
$this->_errors['member_teigeki'] = '';
}
$this->_errors['area_asia'] = '';
$this->_errors['member_newyork'] = '';

if ($validate_flg) {
foreach ($this->_errors as $key => $value) {
if (strlen($value)) {
$validate_flg = false;
}
}
}

if ($validate_flg) {
return 1;
} else {
return 0;
}
}


     ____   _____   ____     _
.    ,r'"  _____|r'"   _____|r'"  ________|   ,r" ,..`ヽ
    i  .r'" ____||  r'" ____||  i'" ________|   / / 'i, i,
   !  ゝ.___ ̄`ヽ,|  |_____| . |  |  |_____  |. / /   i, i,
    ゝ..___ ゙ヽ  i|  |  ____|__.|  |  |_  |  |. / / ∧ i, i,
    | ̄ ̄ ̄_.ノ  l|  ゝ.._______||  ゝ.______|  |./ / / ̄ _i, i,
    | ̄ ̄ ̄  _.ノ ゝ._       .|ゝ._      !' / /| ̄ ̄   i,

0 件のコメント: