Znovu odeslaný formulář po obnovení stránky
- wonka007
- Člen | 11
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 | 1280
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 | 873
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)