POST formulář přidává?do=searchForm-submit do URL

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

Ahoj,
mám jednoduchý formulář vytvářený v presenteru v továrničce (createComponentSearchForm), odvozený z Nette\Application\UI\Form. Formulář je POST.

Po odeslání formuláře se mi přidává do URL ?do=searchForm-submit

Potřeboval bych se toho zbavit. Problém je možná v routě, ale nevím si s tím rady.
Neřešil to už někdo.
Díky moc, dost to spěchá.
Jarda

Glottis
Člen | 129
+
0
-

cus, v metode obsluhujici ten submit dej jen redirect na routu co chces

enumag
Člen | 2118
+
0
-

Někde na fóru jsem kdysi našel následující skript pro odstranění parametru _fid z URL. Jednoduchou úpravou můžeš stejným způsobem odstranit parametr do (nebo libovolný jiný).

if (window.history.replaceState) {
	var l = window.location.toString();
	var uri = l.indexOf('_fid=');
	if (uri != -1) {
		uri = l.substr(0, uri) + l.substr(uri + 10);
		var last = uri.substr(uri.length - 1);
		if (last == '?' || last == '&') {
			uri = uri.substr(0, uri.length - 1);
		}
		window.history.replaceState('', window.document.title, uri);
	}
}

Nefunguje v některých starších browserech…

Editoval enumag (14. 6. 2013 20:00)

iguana007
Člen | 970
+
0
-

Já bych se spíše přiklonil k návrhu od Glottis – tj. udělat redirect po submitu.
Zbavíš se tak i toho, že pokud dá uživatel po submitu formu reload/refresh stránky (a následně odklikne potvrzení o opětovném submitu – lidi moc nečtou a slepě odklikávají), tak se ti ten form neodešle znovu, protože po redirectu a následném reloadu/refreshi stránky opětovný submit formu nenastane.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Ten návrh s odstraněním pomocí Javascriptu je obzvlášť strašný :). Po úspěšném odeslání POSTového formuláře a jeho úspěšném zpracování by vždy mělo následovat přesměrování, takže na takové adrese nikdy uživatel neskončí. Může tam skončit jen pokud něco vyplnil blbě, a má se mu zobrazit chybová formulářová hláška. Pak může pomocí F5 zkusit formulář odeslat znovu.

jardaj
Člen | 3
+
0
-

Díky,
vyřešil jsem to přesměrováním. Asi správné řešení.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Jediné správné řešení :).