Znovu odeslaný formulář po obnovení stránky

wonka007
Člen | 11
+
0
-

Dobrý den,
chtěl bych se zeptat jak zabráním, aby se mi formulář submitnul, ikdyž jsem ještě nezmáčknul submit tlačítko.
Když obnovím stránku, tak se formulář označí jako submitted. Pro ověření, zda je formulář odevzdán používám „$this->isSuccess()“. Ten však vždy vrací true, ikdyž jsem jen zmáčknul F5.
Vím, že se něco ukládá v GET/POST, ale myslel jsem, že to nette dělá automaticky.

Děkuji a přeji hezký den.

Marek Bartoš
Nette Blogger | 1146
+
+2
-

Děje se ti to předpokládám po tom, co už jsi formulář alespoň jednou odeslal pomocí tlačítka a stiskl F5? Po úspěšném odeslání formuláře vždy musíš přesměrovat, aby se toto nedělo

m.brecher
Generous Backer | 713
+
+2
-

Ahoj, když odešleš formulář a chceš zabránit tomu, aby po refreshi stránky F5 se odeslal znovu tak je potřeba v obsluze události submit formuláře po provedení všeho, co je třeba provést, formulář přesměrovat na původní url, cca takto:

final class MyPresenter extends Nette\Application\UI\Presenter
{
	public function createComponentMyForm()
	{
		.....
		$form->onSuccess[] = [$this, 'handleFormSuccess'];
		.......
	}

	public function handleFormSuccess(.....)
	{
		..... // kód kde uděláš co je třeba
		$this->redirect('this');		// toto přesměruje na stejnou stránku se stejným formulářem ;)
	}
}

Psáno z hlavy, netestoval jsem to…

Editoval m.brecher (20. 2. 2022 19:50)

wonka007
Člen | 11
+
0
-

Moc děkuji za radu, vše již funguje.