Co s Form po odeslání, jak vymazat?
- pkristian
- Člen | 29
Ahoj, pár hodin se s tím rozčiluju, tak jsem raději přišel požádat zkušené:
Mám objednávkový formulář, který odesílá email, ovšem co po odeslání emailu? jak zresetnout formulář, hodit hlášku o úspěchu?
Nemám to v nette aplikaci ale jen tak v prostoru.
Prosíím o navedení na správnou cestu :) díky :)
- David Matějka
- Moderator | 6445
Po uspesnem odeslani bys mel presmerovat. Krom toho, ze to smaze ten formular, tak to zabrani opakovanemu odeslani.
- Pavel Macháň
- Člen | 282
pkristian napsal(a):
Ahoj, pár hodin se s tím rozčiluju, tak jsem raději přišel požádat zkušené:
Mám objednávkový formulář, který odesílá email, ovšem co po odeslání emailu? jak zresetnout formulář, hodit hlášku o úspěchu?
Nemám to v nette aplikaci ale jen tak v prostoru.
Prosíím o navedení na správnou cestu :) díky :)
$form->onSuccess[] = function() {
$this->flashMessage('Nějaký text o stavu odeslání');
$this->redirect('this');
};
Editoval EIFEL (5. 6. 2014 16:55)
- Michal Vyšinský
- Člen | 608
Nemám to v nette aplikaci ale jen tak v prostoru.
Myslím, že předchozí odpovědi jsou ti k ničemu. Toto je nette fórum, tak sem prosím nedávej takovéto dotazy. Na to je www.djpw.cz
Editoval Michal Vyšinský (5. 6. 2014 17:06)
- pkristian
- Člen | 29
Mysteria napsal(a):
Protože to není v Nette, tak budeš muset do session uložit tu zprávu, reloadnout stránku a pak tu zprávu zobrazit a smazat. Ale nechápu, proč se ptáš tady, když to nijak nesouvisí s Nette.
ono totiž když je Nette takový úžasný framework, tak jsem si říkal, že to musí mít přímo v objektu Form pořešený, nějaký ten reload, nebo alespoň reset…
@Michal Vyšinský tím jsem myslel, že to není v kompletní aplikaci s presentery, moduly a bootstrapem, ale „jen“ načtená knihovna a vytvořenej formulář v třídě Nette/Form
- Oli
- Člen | 1215
pkristian: Ono jde o to, že Nette\Form se stará o formulář. Přesměrování a flash zprávy má na starosti zase jiná část. Proto, pokud máš jen Form, tak to nemůžeš použít. Co můžeš použít je tady, pokud máš tu třídu kterou jsem ti poslal. Pokud máš jinou, tak si ji najdi…
Jestli chceš využít flash a redirect, tak si musíš nalinkovat části, který to obsluhujou. Po rozdělení by to (podle mě) mělo jít relativně jednoduše, ale nevím. Nikdy jsem to neřešil.
- besanek
- Člen | 128
Smazat hodnoty formuláře by mělo jít takto.
$form->setValues(array(), true);
Každopádně je to zbytečné. Jak píšeš, když se nepovede tak nepřesměrovat, což zanechá hodnoty pro opravení, a poslat chybovou hlášku a když se povede tak přesměrovat, což zresetuje uživatelem zadané hodnoty. Ale možná jen nechápu o co se snažíš.
- pkristian
- Člen | 29
besanek napsal(a):
Smazat hodnoty formuláře by mělo jít takto.
$form->setValues(array(), true);
Každopádně je to zbytečné. Jak píšeš, když se nepovede tak nepřesměrovat, což zanechá hodnoty pro opravení, a poslat chybovou hlášku a když se povede tak přesměrovat, což zresetuje uživatelem zadané hodnoty. Ale možná jen nechápu o co se snažíš.
Mno šlo o to že jsem nemohl posílat headery, session ani koláčky, páč jsem nevěděl kde to bude běžet,
jinak díky, už jsme to vyřešil javascriptem… alert(‚bla bla‘);window.location.href…
takžě „sbohem a díky za ryby“ :)