Předání proměnné do šablony
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Nich
- Člen | 49
V presenteru mám následující formulář:
class MujPresenter extends BasePresenter
{
protected function createComponentMujForm() {
$form = new Nette\Application\AppForm;
$form->addText("name")
->addRule(Form::FILLED, 'Zadejte prosím své jméno');
$form->addSubmit("ok", NULL);
return $form;
// jestliže byl formulář odeslán
if ($form->isSubmitted()) {
// a jestliže jsou všechny položky vyplněny správně
if ($form->isValid()) {
$this->template->succes = 'Formulář byl úspěšně odeslán';
}
}
}
}
No a potom mám v šabloně:
{$succes}
{form mujForm}
<p class="error" n:foreach="$formErrors as $error">{$error}</p>
<p>{label name class => "big", text => "Jméno:"} {input name class => "big", size => 30}</p>
<p>{input ok text => "Odeslat formulár"}</p>
{/form}
což bohužel na stránce vyplivne tohle:
Notice: Undefined variable: succes in /data/www/domeny/skauting.cz/brodek/nette/app/temp/c-Nette.Template/_5b529658a78904de6422b7e7c03ec7dc.showform.phtml.php on line 23
A ani po odeslání formuláře se to nezmění :-(
Tohle moje řešení je dost krkolomné, ale s Nette teprv začínám a nenapadlo mě, jak jinak se to snažit vyechovat…
- Jan Endel
- Člen | 1016
Notice je tam kvuli toho, ze pokud formular je nevalidni, promenna je neinicializovana. Jinac presne pro tve pripady se pouzivaji flashmessages
Editoval pilec (15. 6. 2010 23:25)