zachovani parametru pri odeslani formulare?

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

Ahoj,

prosim Vas, jak zachovam parametry, ktere mam v url i pri odeslani formulare? mam nejakou takovouto url:
mujweb.cz/neco/neco/id1/id2/id3
a formular resim pomoci tovarnicky, kde onSuccess vypada takto:

$form->onSuccess[] = callback($this, 'noteFormSubmitted');

formular se mi ovsem odesila na url:
mujweb.cz/neco/neco?do=noteForm-submit misto mujweb.cz/neco/neco/id1/id2/id3?do=noteForm-submit jak bych ocekaval..

lze toto chovani nejak ovlivnit a parametry v url ponechat?

tomasnikl
Člen | 137
+
0
-

tak jsem to vyresil persistentnimi parametry.. no nevim, moc se mi to ale nelibi (proc predavat parametry vsude kdyz je potrebuju jen na jedne strance). Neni nejake lepsi reseni?

na1k
Člen | 288
+
0
-

A měl jsi ty parametry definované už v routě anebo jsi je tam lepil nějak jinak? Pokud se nepletu, tak při parametrech v routě a přesměrování na this (používá formulář jako action) by měla být vygenerovaná adresa opět s parametry.

tomasnikl
Člen | 137
+
0
-

v route mam neco takoveho:

$router[] = new Route('<presenter>/<action>[/<id>][/<projectId>][/<websiteId>]', 'Projects:list');

ale i tak mi formular generoval action bez techto tri parametru. Zatim jsem to vyresil tim, ze jsem je nastavil jako persistent, at me to nebrzdi v praci… ale to reseni se mi opravdu moc nelibi, pac v kazde url mam ted 3 zbytecna cisla, ktera vyuzivam stejne jen na jedne strance… ne ze by mi to vadilo, jedna se o interni aplikace, ale do budoucna dobre vedet jak na to…

Etruska
Člen | 25
+
0
-

Já mám podobný problém. Formulář tvořím když se zavolá signál rodičovské komponenty, čili potřebuju, aby ten signál i s parametry zůstal v adrese, ale po odeslání formuláře zmizí. Je to správné chování Nette nebo jsem někde udělal chybu?

Filip Procházka
Moderator | 4668
+
0
-

Odesílání formuláře je v Nette realizováno pomocí signálu. A jak jistě víš, tak v Nette jde mít „aktivní“ pouze jeden signál v jednom okamžiku. Takže odpověď na tvou otázku je ne, nejde to. Vymysli lepší řešení.

Etruska
Člen | 25
+
0
-

Aha, to mi nedošlo. Díky.

Filip Procházka
Moderator | 4668
+
0
-

Samozřejmě, pokud si nevíš rady a pokud svůj problém tak ti určitě někdo pomůže :)