人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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();
?>

●質問者: kunitz
●カテゴリ:コンピュータ
✍キーワード:dB HTML Pear PHP reset
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● sasada
●25ポイント

http://www.townmedia.org/tips/index.php?doc=PEAR/peardoc_ja&_pea...

townmedia.org

http://www.townmedia.org/tips/index.php?doc=PEAR/peardoc_ja&_pea...

townmedia.org

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

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

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

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

http://www.is.titech.ac.jp/~yanagis0/kei/quickform.html

http://www.townmedia.org/tips/PEAR/peardoc_ja.html

townmedia.org

http://www.townmedia.org/tips/index.php?doc=PEAR/peardoc_ja&_pea...

townmedia.org

◎質問者からの返答

ありがとうございます!

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


2 ● sasada
●25ポイント

http://dickmann.homeunix.org/pear/phpdoc/PEAR/HTML_QuickForm/2.5...

>$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が参考になると思います。

http://www.townmedia.org/tips/index.php?doc=PEAR/peardoc_ja&_pea...

townmedia.org

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

以下、おまけです。

http://pear.php.net/package/HTML_QuickForm_Controller/docs/1.0.3...

Docs For Class HTML_QuickForm_Action_Submit

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

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

◎質問者からの返答

ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ