Properties v překreslované komponentě
- janvacek
- Člen | 15
Ahoj,
je to možná trochu hloupý dotaz, možná jen dělám něco zle.
pokud si v komponentě přihlašovacího formuláře udělám bool
propertu,
public $nejakyPrepinac = FALSE
kterou v render metodě sázím do šablony, která je celá obalená přes
{snippet}{/snippet}
formulář ajaxově odešlu, v onSuccess nastavím $nejakyPrepinac na TRUE a překreslím přes
$this->redrawControl();
tak už v té dané propertě mám zase FALSE
komponenta má fungovat tak, že při prvním odeslání se pošle email a zobrazí se něco dalšího v šabloně a při druhém odeslání (kontroluje právě ta properta) se děje zase něco jiného a pokračuje se redirectem.
Persistentní parametr sice funguje, ale nemyslím si, že je to úplně
clean
řešení.
Nemáte někdo nějakou radu prosím?
Nette 3.0, Naja 1.7
Editoval janvacek (7. 1. 2020 12:13)
- David Grudl
- Nette Core | 8227
Persistentní právě znamená, že se jeho hodnota drží i mezi jednotlivými požadavky, takže pokud funguje, máš clean řešení.
- David Grudl
- Nette Core | 8227
Jestli jsem to pochopil dobře – ty nastavíš nějaký parametr. Pak přijde další požadavek (třeba ajaxový) a v něm má ten parametr původní hodnotu, logicky, protože v PHP má aplikace životnost právě jeden požadavek.
Takže si musíš někde v prohlížeči (stav v URL, stav v javascriptu) ten parametr uchovávat a posílat na server. Framework ti nabízí ultraeasy způsob, což jsou persistentní parametry, nebo to můžeš dělat ručně, parametr vkladát do URL nebo držet v javascriptu a s požadavkem ho posílat na server.