Problém s vykreslením formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Mesiah
- Člen | 240
Zdravíčko,
prosím Vás, teďka dělám něco po delší době v Nette2, ale mám problém
s formulářem.
Problém je, že se mi vykresluje jen s použitím makra
{widget form}
.
Jenže chci formulář vykreslit po svém pomocí manuálního vykreslení, ale tady je problém. Při použití konstrukce:
{form contactForm}
<span>
{label subject /}
{control subject}
</span>
<span>
{label email /}
{control email}
</span>
<span class="submit-span">
<span class="txt-span">
{label text /}
{control text}
</span>
{control save}
</span>
{/form contactForm}
Dostávám chybu: `Nette\InvalidArgumentException
Component with name ‚subject‘ does not exist.`. Formulář definuji
pomocí:
public function createComponentContactForm()
{
$form = new Form();
$items = array(...);
$form->addSelect('subject', 'Předmět', $items);
$form->addText('email', 'Váš e-mail')
->setDefaultValue('@');
//->addRule(Form::EMAIL, 'Prosím zadejte adresu elektronické pošty v platném tvaru.');
$form->addTextArea('text', 'Text zprávy')
->addRule(Form::MAX_LENGTH, 'Vaše zpráva je příliš dlouhá.', 4000);
$form->addSubmit('save', 'Odeslat')->onClick[] = callback($this, 'contactFormSubmitted');
return $form;
}
Napadá Vás, kde je problém?
(PHP 5.3.5–1ubuntu7.2, Nette Framework 2.0-beta (revision f2ae1ce released
on 2011–06–22))
- Majkl578
- Moderator | 1364
https://doc.nette.org/cs/forms#…
Mělo by to být {input subject}
místo
{control subject}
(a dále obdobně).