Properties v překreslované komponentě

před 15 dny

janvacek
Člen | 6
+
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. 12:13)

před 15 dny

David Grudl
Nette Core | 6928
+
+1
-

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

před 15 dny

janvacek
Člen | 6
+
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 :-)

před 14 dny

David Grudl
Nette Core | 6928
+
+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.

před 14 dny

janvacek
Člen | 6
+
0
-

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