Změna value submit tlačítka formuláře
- pastyx
- Člen | 25
Vytvářím jednoduchý formulář následovně:
<?php
protected function createComponentDrugForm() {
$form = new Form;
$form->addHidden('idlek')->setDefaultValue(-1);
$form->addText('nazev', 'Název:')
->setRequired();
$form->addTextArea('poznamka', 'Poznámka:');
$form->addSubmit('send', 'Přidat');
$form->onSuccess[] = array($this, 'drugFormSucceeded');
return $form;
}
?>
Tento formulář používám pro vytváření nových záznamů a následně i pro editaci některého ze stávajících. V takovém případě do formuláře nahraji data následovně:
<?php
$this['drugForm']->setDefaults($drug->toArray());
?>
Při odeslání takového formuláře se vyplní i skryté pole idlek a metoda drugFormSucceeded pozná, že se jedná o editaci.
To ale potřebuji dát vědět i uživateli a změnit value hodnotu send tlačítka z „Přidat“ na ¨Upravit".
Pro normální prvky formuláře funguje dobře:
<?php
$this['drugForm']['nazev']->setValue('Nový název'); // Změní
?>
Nicméně pro send submit tlačítko to nic neudělá:
<?php
$this['drugForm']['send']->setValue('Upravit'); // Nezmeni starou hodnotu value
?>
Dovedl by mi někdo poradit jak toho docílit ?
Předem děkuji za pomoc.
Editoval pastyx (2. 8. 2016 18:33)
- pastyx
- Člen | 25
docky napsal(a):
A co něco takového ?
$id = $this->getParameter('id'); if ($id) { $form->addSubmit('send', 'Upravit'); } else { $form->addSubmit('send', 'Přidat'); }
To vyřeší můj problém, díky. Kdyby ještě někdo přišel na to jak měnit value toho submit tlačítka k existujícím formuláři, mohlo by to pomoci budoucím čtenářům postu :-)