2009-12-12 7 views
2

Disons que j'ai forme comme ceci:Comment définir les valeurs affichées après l'envoi de 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')); 
    } 
} 

Après que je veux soumettre la valeur par défaut à afficher au lieu de la valeur saisie par l'utilisateur. Est-ce que Quickform ont certaines fonctionnalités pour y parvenir ou dois-je utiliser quelque chose comme maladroit:

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

.. Dans ce cas, la méthode setDefaults semble peu inutile pour moi ...

Répondre

0

vous pouvez utiliser

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

La documentation indique: Cette méthode essaie d'abord de trouver une valeur soumise nettoyée, elle retournera une valeur définie par setValue()/setDefaults()/setConstants() si la valeur soumise n'existe pas pour l'élément donné .... Donc je suppose que cela ne résout pas mon problème: / –

0

La méthode setDefaults est supposée "pré-remplir" le contenu du formulaire.

Après une soumission, les valeurs définies dans les formulaires sont celles qui proviennent de la méthode $ form-> getSubmitValues.

Si vous voulez/besoin de changer ce comportement, vous avez pas d'autre option que de définir manuellement la valeur:

code (à utiliser après avoir défini votre élément « texte » bien sûr):

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