PEAR HTML_QuickFormで質問。

validateが済んで、
freezeした後に、
他のphpファイルにPOSTして、
そのphpファイルでDB書き込みなどの処理を行いたいです。
つまりvalidate前と後でformのaction先を変更したいです。

実現方法を教えてください。


<?php
require_once ”HTML/QuickForm.php”;

$form = new HTML_QuickForm(’frmTest’, ’post’);
$form->addElement(’header’, ’MyHeader’, ’QuickFormテスト[必須項目]’);
$form->addElement(’text’, ’option1’, ’任意1’);
$form->addElement(’text’, ’must1’, ’必須1’);
$form->addElement(’reset’, ’btnClear’, ’クリア’);
$form->addElement(’submit’, ’regist’, ’送信’);
$form->addRule(’must1’, ’必須1の入力が必要です’, ’required’);
if ($form->validate()) {
// フォームの検証が成功したら、凍結する。
$form->freeze();
}
$form->display();
?>

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/10 17:37:59
  • 終了:--

回答(2件)

id:sasada No.1

sasada回答回数1482ベストアンサー獲得回数1332004/11/10 22:26:20

ポイント25pt

 そういうニーズは初めてなので、未テストですが・・・。

 $form->validate()に成功したら、$form->freeze()する前に、$form->updateElementAttr (’submit’, ’URI’)で、飛び先を変更できませんか?

 ちなみに、私なら飛び先URIは変えずに、$form->process()で処理を分けると思います。

 以下は、おまけのマニュアルです。

id:kunitz

ありがとうございます!

$form->updateElementAttr (’submit’, ’URI’)

2004/11/10 22:33:29
id:sasada No.2

sasada回答回数1482ベストアンサー獲得回数1332004/11/11 00:19:29

ポイント25pt

>$form->validate()に成功したら、$form->freeze()する前に、$form->updateElementAttr (’submit’, ’URI’)で、飛び先を変更できませんか?

 すみません。これ、大嘘ですね。大変申し訳有りません。m(_ _)m

 actionの飛び先URIは、基本的にHTML_QuickFormのコンストラクタでしか設定できないみたいです。

 ムリに飛び先を変えるなら、$form->validate()に成功後、formを作り直すことになると思います。

 やはり、ここで飛び先URIは変えるのではなく、$form->validate()に成功後に、$form->freeze()を行い、$form->process()でDB処理に飛ぶのが正しいと思います。

http://www.planewave.org/translations/quickform/html_quickform.h...

PEAR初心者ガイド -- HTML_QuickForm入門

 上記URLのコード 5.3が参考になると思います。

 $form->process()のマニュアルです。

 以下、おまけです。

 上記の機能を使いこなせば、何か出来るのかもしれませんが、不勉強にて私には分かりかねます。

 申し訳有りません。m(_ _)m

id:kunitz

ありがとうございます!

2004/11/11 00:38:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません