2009-12-12 24 views
2

比方說,我已經得到形式是這樣的:如何設置使用PEAR QuickForm提交後顯示的值?

$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方法似乎有點對我沒用......

回答

0

你可以使用

$form->exportValue('text'); 
+0

文檔說:此方法首先嚐試查找已清理的提交值,如果提交的值對於給定元素不存在,它將返回由setValue()/ setDefaults()/ setConstants()設置的值。所以我想這並不能解決我的問題:/ – 2009-12-12 23:11:51

0

setDefaults方法被認爲是「預填充」表單的內容。

提交後,設置到表單中的值是來自方法$ form-> getSubmitValues的值。

如果你想/需要改變這種行爲,那麼你有沒有其他選擇比手動設定值:

$text=$form->getElement('text');      
$text->setValue('your value'); 

代碼(定義你的元素,當然「文本」後使用)