Formuláře bez použití MVC

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

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.

Jan Tvrdík
Nette guru | 2595
+
0
-

Koukni se do dokumentace a prostuduj si příklady.

Jod
Člen | 701
+
0
-

Jasné ide to v pohode, stiahni si Nette prefixed, includni min verziu a bez problémov. V práci používam.

PetrP
Člen | 587
+
0
-

ja jen doplním ze nette prefixed neni podmínkou v případě ze nedochází ke kolizi názvu tříd (nebo namespace verze kdyz uz mame php 5.3)

Jod
Člen | 701
+
0
-

To ano, ale predsa je lepšie, že keĎ sa pozrieš na kód a hneď vieš čo je nette a čo je ostatné.

duskol
Člen | 2
+
0
-

Diky, mrknu nato pres vikend.

D.

PetrP
Člen | 587
+
0
-

Zajímalo by mě kde jsi se zasekl, protože na tebou zmiňovaném odkaze to david krásně ukazuje (bez mvc jak píšeš; na Form v aplikaci máme AppForm)

piler
Člen | 111
+
0
-

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

Jod
Člen | 701
+
0
-

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.

Editoval Jod (7. 7. 2009 14:13)

piler
Člen | 111
+
0
-

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
+
0
-

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?

Jod
Člen | 701
+
0
-

Keby si to používal bez udalostí tak nemáš problém.

piler
Člen | 111
+
0
-

Jod napsal(a):

Keby si to používal bez udalostí tak nemáš problém.

No, vsak to je to, coho sa mi nechce vzdat :(. Je to velmi pohodlne a prehladne. Ach…nevadi…

David Grudl
Nette Core | 8228
+
0
-

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');