Odesilani formulare GET metodou s action nastavebou na handleAction()

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

Ahoj chtel bych odesilat formular get metodou a aby se odesal na handle handleAction(..).
Zkousel jsem:

$form->setAction($this->link('action!')) ale to my vytvori akci na render metodu, kde ten formular vykresluju. Resim to takhle spravne? Nebo proste nemuzu smerovat pozadavek z formulare na signal handler? Diky.

Zax
Člen | 370
+
0
-

Mohu vědět, k čemu to potřebuješ? Třeba existuje lepší řešení ;-)

Ale je možné, že jsi našel bug v Nette a tipnul bych, že to nějak souvisí s tím, že „do“ parametr se nedávno z akce přesunul do hidden políčka. Nejsem zas tak zkušený v Nette abych to posoudil, ale přijde mi, že se to chová přinejmenším trochu zvláštně:

$form->setMethod('post');
$form->setAction($this->link('test!'));

==

<form method="post" action="?do=test">

naproti tomu

$form->setMethod('get');
$form->setAction($this->link('test!'));

==

<form method="get" action="">

A v obou případech má formulář hidden pole stejné

<input type="hidden" name="do" value="form-submit">

Možná bych zkusil nastavit přímo „do“, ale nepřijde mi to zrovna jako nejlepší řešení..

marty666
Člen | 26
+
0
-

Mozna to nebylo nejstastnejsi reseni. vyresil jsem to klasicky:

$form->setMethod('get');
$form->onValidate[] = $this->processForm;