Properties v překreslované komponentě

janvacek
Člen | 15
+
0
-

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
+
+1
-

Persistentní právě znamená, že se jeho hodnota drží i mezi jednotlivými požadavky, takže pokud funguje, máš clean řešení.

janvacek
Člen | 15
+
0
-

@DavidGrudl Díky za reakci.

Je tu cesta jak se vyhnout persistentnímu parametru? Asi ho nakonec stejně použiji, ale spíš ze zvědavosti :-)

David Grudl
Nette Core | 8227
+
+2
-

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.

janvacek
Člen | 15
+
0
-

Trochu jsem to tušil, takže půjdu cestou persistentního parametru :-) Mockrát díky @DavidGrudl