[PHP-users 30282] HTML_QuickForm::elementExists()について

姓名 kronos.jpn @ gmail.com
2006年 9月 8日 (金) 14:40:50 JST


はじめまして、ヤマシタです。

HTML_QuickForm::elementExists()について質問があります。
elementExists()はフォームに対象の要素が存在するかどうかを確認できるということですが、
以下のような使い方はできないのでしょうか?

例)

//送信された内容の検証結果の確認
if ($form->validate()) {
 if($form->elementExists('freezeFlg')){
  $form->process('processForm', false);
 }else{
  // Formの要素に"freezeFlg"を追加
  $form->addElement('hidden','freezeFlg',"True");
  // freeze
  $form->freeze();
 }
}

上記のような場合、私のイメージでは、
フォームの内容の検証結果が正常な場合、
さらに、フォーム要素に"freezeFlg"が存在しているか確認に行き、
初期のフォーム要素には存在していないため要素の追加とfreezeが行われます。
次に、再度同フォーム上が呼び出され実行された場合(freeze状態で送信ボタンを押す)
次回は"freezeFlg"が存在している為に、"processForm"が呼ばれると思っているのですが、
実際には、"呼ばれることはありませんでした"

具体的には、Hidden属性で"freezeFlg"が存在していても、
$form->elementExists('freezeFlg')の結果は"True"にならないのですが、
これは私の認識(使い方)が誤っているのでしょうか?


PHP-users メーリングリストの案内