formulář neprovádí žádnou akci
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- onny
- Člen | 67
Hezký večer,
mám widget, ve kterém mám
class WidgetLogin extends Control
public function render()
{
$form = new AppForm;
$form->addText('username', 'Uživatelské jméno:')
->addRule(Form::FILLED, 'Zapomněli jste vyplnit uživatelské jméno.');
$form->addPassword('password', 'Heslo:')
->addRule(Form::FILLED, 'Zapomněli jste vyplnit heslo.');
$form->addSubmit('login', 'Přihlásit');
$form->addProtection('Zkuste to prosím znova.');
$form->onSubmit[] = callback('WidgetLogin::loginFormSubmitted');
print $form;
}
public function loginFormSubmitted() {
kód . .
bohužel akce loginFormSubmitted se vůbec neprovede. Přitom když dám
v render výpis $_POST, tak data přišli. Kde je jádro pudla?
Díky
- jasir
- Člen | 746
Aha, už to vidím. Vyndej definici z render a dej jí do továrničky, tj.
<?php
public function createComponentLoginForm() {
$form = new AppForm();
...
return $form;
}
?>
Funkce render se provádí v render fázi, to je pozdě.
Tvoje render by měla vypadat nějak takto:
<?php
public function render() {
$this->template->setFile(dirname(__FILE__) . '/loginForm.phtml');
$this->template->form = $this['loginForm'];
$template->render();
//nebo opravdu jen: echo $this['loginForm']
}
?>
a k tomu loginForm.phtml
Wow, moje prvni komponenta... Co obsahuje další komponentu...
{$form}
No ale vzhledem k tvému zmatení opravdu doporučuji dokumentaci.
Editoval jasir (14. 10. 2010 1:00)