Presmerovanie po submitte formulara
- steelbull
- Člen | 241
Ako presmerovat formular na URL, z ktorej som na formular prisiel a vypisat flashmessage? Predpokladam, ze niekde v BasePresenteri si musim pravdepodobne zapamatat URL (ale ako riesit, ako si ju neprepisat ak sa nachadzam na formulari resp. ked si ju zapamatam a submittnem formular, potom do URL predchadzajucej adresy ulozim URL na formular a to mam to iste, ako redirect($this))?
Momentalne presmerovavam takto:
$this->flashMessage($this->translator->translate('flash.record_was_saved'), 'success');
$this->redirect('Wu:');
Velmi pekne dakujem za rady.
- steelbull
- Člen | 241
Ale ja by som chcel presmerovat nie na stranku odkial som formular poslal, ale na stranku na ktorej som bol predtym, ako som formular otvoril. Priklad:
/nette/www/item – zoznam itemov, pre pridanie noveho kliknem na
„add“
/nette/www/add – vyplnim data a submittnem form
malo by ma presmerovat na /nette/www/item a return(‚this‘) po submitte ma presmeruje na /nette/www/add
- Ryky
- Člen | 14
steelbull napsal(a):
Ale ja by som chcel presmerovat nie na stranku odkial som formular poslal, ale na stranku na ktorej som bol predtym, ako som formular otvoril. Priklad:
/nette/www/item – zoznam itemov, pre pridanie noveho kliknem na „add“
/nette/www/add – vyplnim data a submittnem formmalo by ma presmerovat na /nette/www/item a return(‚this‘) po submitte ma presmeruje na /nette/www/add
ahaa nevěděl jsem co myslíš ale vyřešíš to tímto
$this->redirect('nazevPresenteru:akce');
je to úplně stejné jak v latte :)
Editoval Ryky (12. 11. 2014 17:35)
- steelbull
- Člen | 241
@Ryky jj, tak to robim teraz, ale to moju situaciu neriesi. To by som si totiz musel nazovPresenteru aj akciu zapamatat:
Este raz si prosim precitaj;
steelbull napsal(a):
Ale ja by som chcel presmerovat nie na stranku odkial som formular poslal, ale na stranku na ktorej som bol predtym, ako som formular otvoril. Priklad:
/nette/www/item – zoznam itemov, pre pridanie noveho kliknem na
„add“
/nette/www/add – vyplnim data a submittnem form
malo by ma presmerovat na /nette/www/item a return(‚this‘) po submitte ma presmeruje na /nette/www/add
- matopeto
- Člen | 395
Niekde si tu stranku zapamatat musis:)
Presne ako pisal @ali
funkcie restoreRequest
a storeRequest
su presne na
ten tvoj USE Case.
na stranke, kde mas odkaz na formular, vytvoris backlink, posles do sablony s formularom:
niekde v presentri:
$backLink = $this->storeRequest(); $this->template->backLink = $backLink;
kde budes mat
n:href="Formular:akcia, backLink => $backLink"
ten v si bud vlozis ako hidden do formulara, persistent, alebo ako parameter action napriklad.
a po spracovani pouzijes restoreRequest
ktory urobi
presmerovanie, za nim das este default presmerovanie, keby nebolo nic
v backlinku ulozene.
Pripadne ak neovladas adresy, z ktorych mozes prist na formular (su napr.
externe) mozes po odoslati pouzit javascript
typu window.history.back();