Problém s komponentou a formulářem

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
omachala
Člen | 20
+
0
-

Zdravím, mám komponentu pro vykreslení formuláře:

<?php
	public function createComponentAddForm($name) {

		$form = new Form($this, $name);

		$form->addText('name', 'Jméno')
			->setRequired('Zadejte jméno.');

		$form->addSubmit('submit', 'Odeslat');

		$form->onSuccess[] = callback($this, 'send');

	}
?>

ale do formuláře se nevykreslí žádný prvek a výsledek je tento:

<form action="/add/?do=addControl-addForm-submit" method="post" id="frm-addControl-addForm"><div><!--[if IE]><input type=IEbug disabled style="display:none"><![endif]--></div>

Když stejný kód použiju pro vykreslení formuláře přímo z presenteru (místo komponenty) tak běží bez problému. Tuším, že něco opomínám :-(

Grelek
Člen | 233
+
0
-

Vytvářet formulářovou komponentu tímto způsobem se nedělá. Zkus tohle.

public function createComponentAddForm()
{
	$form = new Form();

	$form->addText('name', 'Jméno')
		->setRequired('Zadejte jméno.');

	$form->addSubmit('submit', 'Odeslat');

	$form->onSuccess[] = $this->addFormSubmitted;

	return $form;
}

public function addFormSubmitted(Form $form)
{

}

V šabloně ho pak vykreslíš normálně přes {control addForm} nebo ručně. =)

Editoval Grelek (8. 8. 2013 0:19)