2

次のようなフォームがあるとしましょう。

$form = new HTML_QuickForm('Novinky');  
$defaults = array('text' => '');
$form->setDefaults($defaults);
$elements['text'] = $form->addElement('textarea', 'text', 'Text', array('cols'=>55, 'rows'=>10, 'id'=>'text'));
$form->addElement('submit','save','Save');
if (isset($_POST[save])) {
    if ($form->validate()) {            
        $form->process(array($this,'writeDB'));
    }
}

送信後、ユーザーが入力した値の代わりにデフォルト値を表示したい。Quickformにはそれを達成するための機能がありますか、それとも次のような不器用なものを使用する必要がありますか?

$elements['text']->setValue( $defaults['text']);

..その場合、setDefaultsメソッドは私には少し役に立たないようです...

4

2 に答える 2

0

あなたが使用できる

$form->exportValue('text');
于 2009-12-12T22:38:09.333 に答える
0

setDefaults メソッドは、フォームのコンテンツを「事前入力」すると考えられています。

送信後、フォームに設定される値は、メソッド $form->getSubmitValues からのものです。

その動作を変更したい/変更する必要がある場合は、値を手動で設定する以外にオプションはありません。

コード(もちろん、要素「テキスト」を定義した後に使用されます):

$text=$form->getElement('text');                    
$text->setValue('your value');
于 2010-11-18T12:08:25.743 に答える