Uchovanie hodnoty select boxu pri stránkovaní

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Aris
Člen | 48
+
0
-

Zdravím, využívam závislý select box pozostávajúci z troch polí. Bez stránkovania bol spravený tak, že Ajaxom po vybraní prvého poľa prekreslím hodnoty druhému, následne tretiemu. Nahodil som však stránkovanie obsahu, kde zatiaľ priamo redirectnem na danú stranu. Redirectom prichádzam o hodnotu zo select boxu. Skúšal som nastaviť vybranú hodnotu na prvej strane ako default danému poľu i kopec iných vecí, avšak zatiaľ neúspešne. Hodnotu, ktorú chcem nastaviť ako default si viem vytiahnuť z poľa $_REQUEST.

Ako uchovať danú hodnotu, nech môžem postupne vybrať hodnoty zo závislého select boxu a postupne Ajaxom prekresľovať obsah?
Prípadne si to skomplikovať a spraviť i stránkovanie Ajaxom a neprekresľovať snippet so select boxom?

Ďakujem za rady :)

CZechBoY
Člen | 3608
+
0
-

Pridej vybrany selectbox(jeho hodnotu) do url.

Aris
Člen | 48
+
0
-

Ono sa na danej stránke k hodnote dostať viem i bez parametra url. Skúsil som ho však pridať, avšak to problém nevyriešilo. Nech upresním problém, v selectboxe sa nastaví po redirecte na stránku defaultný prompt – výzva na výber hodnoty.

duke
Člen | 650
+
0
-

Hodnota select boxu se automaticky nastavuje podle $_REQUEST. Po přesměrování (při tvém stránkování) je však $_REQUEST prázdný.
To lze řešit buď tak, jak říká @CZechBoY tím, že při stránkování přesměruješ na url obsahující v nějakém parametru hodnotu selectu (to však znamená při každé změně hodnoty selectu upravovat i stránkovací odkazy) a tuto hodnotu pak při inicializaci formuláře select boxu nastavíš, a nebo také tak, že stránkování nebude přesměrovávat (odkazovat), nýbrž odesílat celý formulář (a tím nepřijdeš o $_REQUEST).

Možná ale bude jednodušší i to stránkování udělat ajaxově, a tím pádem nebudeš muset přesměrovávat a nepřijdeš tedy o stav formuláře, než ho odešleš.

Editoval duke (30. 4. 2018 17:40)

Aris
Člen | 48
+
0
-

Duke, ďakujem za radu :) Ajax bol rýchlejšie riešenie. Pri zajaxovaní nefungovalo stránkovanie ako bolo treba, tak som to zmazal a šiel som odznova.
Nastal problém so životným cyklom presentera, nakoľko je handle za renderom. Prvá stránka šla renderom a ďalšie cez handle, kde som sa už nedopracoval k potrebným premenným selectformu.
Formulár neodosielam, slúži iba na sortovanie prvkov. Hodnoty selectov som nakoniec uložil ako session premenné, ktoré treba pri stránkovaní skrz životný cyklus. Ide to ako má.

Je toto riešenie cez session premenné vhodné? Expirácia je samozrejme nastavená.

CZechBoY
Člen | 3608
+
0
-

jj taky pouzivam session, ale je trosku horsi poznat kdy nacist ze session (strankovani) a kdy ne (nove nacteni stranky).