Formuláře bez použití MVC
- duskol
- Člen | 2
Zdravím,
pátrám jestli je možné použít Nette formuláře bez nutnosti přepisovat
starý web do frameworku.
Nějaký návod jsem našel zde: https://forum.nette.org/…ha-formularu
ale nevím jak dál, jde mi pouze o to, aby data z formuláře byly odeslány
na mail.
- piler
- Člen | 111
Snazim sa pouzit v jeden aplikacii Nette\Forms (teda bez Nette frameworku), ale obsluzne handlery
<?php
...
$form->onSubmit[] = array($this, 'defaultFormSubmitted');
...
?>
Sa nezavolaju, pokial nezavolam metodu Form::isSumbitted(), alebo Form::processHttpRequest() tak sa obsluzny handler nezavola, teda to musim urobit manualne. Pripada mi to zbytocne, kedze v Nette\Application sa toto deje automaticky. Da sa to nejak podobne rozbehat aj bez Application?
Dik
- piler
- Člen | 111
Jod napsal(a):
No budeš si to asi musieť zavolať niekde vyššie. V application sa asi spracúva len request ktorý používa AppForm :)
AppForm využívá ke svému zpracování handlery. Ty se zpracovávají ve fázi zpracování signálů životního cyklu presenteru.
oki…takze nie je ziadna automatizovana moznost…nevadi…;)
- piler
- Člen | 111
Este jedna vec. Ked chcem vyuzit method GET, tak bez ohladu na to, ci bol formular odoslany, alebo nie sa obsluzny handler zavola (v aplikacii bez nette).
Kod:
<?php
function actionDefault()
{
$form = new Form;
$form->setMethod('get');
$form->addText('q', 'Company name:');
$form->addSubmit('send', 'Search');
$form->onSubmit[] = array($this, 'defaultFormSubmitted');
$form->processHttpRequest();
$this->template->form = $form;
}
public function defaultFormSubmitted($form)
{
pr($form->getValues());
}
?>
Je to chyba?
- David Grudl
- Nette Core | 8228
piler napsal(a):
oki…takze nie je ziadna automatizovana moznost…nevadi…;)
Zkus si odpovědět na otázku, kdy by se ta metoda měla zavolat?
piler napsal(a):
Este jedna vec. Ked chcem vyuzit method GET, tak bez ohladu na to, ci bol formular odoslany, alebo nie sa obsluzny handler zavola (v aplikacii bez nette).
To se řeší třeba tak, že se do formuláře přidá tracker:
$form->addTracker('nazevformu');