Routa pro odesílaný formulář

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

Jak vytvořím routu, pro odesílaný formulář, tak aby nebylo v URI ...?do=myform-submit?

Honza Marek
Člen | 1664
+
0
-

Nevytvoříš, ale po odeslání formuláře můžeš (a měl bys) přesměrovat na nějakou normální adresu.

_Martin_
Generous Backer | 679
+
0
-

Ahoj, můžeš udělat routu ve tvaru:

$router[] = new Route('<presenter>/<action>/zpracuj/<do>');

Ta vygeneruje adresu podobnou /homepage/default/zpracuj/myform-submit. Můžeš si samozřejmě s parametry hrát dle libosti – ty, které neuvedeš v routě se potom přidají za otazník (jako ve výchozím stavu parametr do).

Pokud jde o tvar myform-submit, tak s tím moc neuděláš, to je jméno signálu, který si formulář generuje sám. Nanejvýš bys mohl udělat nějakou překladovou funkci, která by ti tohle předělala třeba na odeslani-formulare-myform (a opačně), takže výsledná adresa by byla /homepage/default/zpracuj/odeslani-formulare-myform, ale to už je zbytečná práce navíc =)

U těch formulářů to je celkem jedno, protože po každém odeslání formuláře bys měl přesměrovat a tudíž ta adresa pro zpracování nemusí užvatele zajímat.