Autor | Zpráva | ||
---|---|---|---|
Smajchl Profil * |
#1 · Zasláno: 18. 7. 2008, 13:31:44
Ahoj,
Potřebuju poradit. Mám stránku s mnoha kategoriememi a v každé kategorii jsou články. Postupem času jich tam je ale moc a menu po pravé straně je moc dlouhé, chtěl bych udělat kategorie zavírací, aby se daly klikem zobrazit články v ní, nebo zas schovat. Problém je ale jak uchovat informace o tom, která kategorie je otevřená a která zavřená. Tuhle funkci jsem chtěl udělat v javascriptu, ale nevím jak v javascriptu uchovat proměnnou po celou dobu návštěvy stránky -> uživatel si otevře kategorii, klikne na článek a kategorie zůstane otevřená. Poraďte mi jak na to. |
||
grimword Profil |
#2 · Zasláno: 18. 7. 2008, 13:54:36 · Upravil/a: grimword
v js nevim, v PHP se takoveto informace uchovavaji pomoci sessions nebo cookies (pri prechazeni mezi strankami)
|
||
Nox Profil |
#3 · Zasláno: 18. 7. 2008, 14:24:50
JS myslim taky umí pracovat s cookies
|
||
Smajchl Profil * |
#4 · Zasláno: 18. 7. 2008, 15:03:53
A myslíte si, že cookies je vhodný použít na toto? Jestli jo tak dík za radu. Javascript umí cookies, v tom neni porblém.
Ještě mě napadly hidden prvky ve formulářích, což si myslim že na tohle použití neni vhodný a navíc bych musel použít jazyk na straně serveru a pak metoda GET a to je asi nejošklivější, tu nechci použít. Nic dalšího mě nenapadlo. |
||
imploder Profil |
#5 · Zasláno: 18. 7. 2008, 15:19:15
Na tohle jsou ideální rámy.
|
||
Smajchl Profil * |
#6 · Zasláno: 18. 7. 2008, 15:36:15
Rámy? Proboha to ne, navíc ta stránka už je hotová tak jak je, nebudu jí předělávat.
|
||
grimword Profil |
#7 · Zasláno: 18. 7. 2008, 15:46:07
a co to vyresit pres PHP? kdyz pomoci PHP zjistis, na ktere strance se nachazi (clanek o ferrari - rozbalis menu auta-sportovni-zahranicni) a je to
|
||
imploder Profil |
#8 · Zasláno: 18. 7. 2008, 16:11:01
grimword
a co to vyresit pres PHP? kdyz pomoci PHP zjistis, na ktere strance se nachazi (clanek o ferrari - rozbalis menu auta-sportovni-zahranicni) a je to jj a k tomu udělat rozbalování ostatních JavaScriptem. Myslel jsem ale, že chce mít možnost rozbalit/sbalit víc zároveň a jakoukoliv kombinaci rozbalených a sbalených, která tak vznikne, zachovat i po kliknutí na odkaz. Pokud stačí, aby se zachovala rozbalená jenom kategorie, do které patří daná stránka (a kterou uživatel logicky musel mít rozbalenou, když na odkaz na ni klikl), pak v tom není žádný problém. |
||
imploder Profil |
#9 · Zasláno: 18. 7. 2008, 16:13:26
Pokud to ale má zůstat porozbalováno tak, jak to uživatel před kliknutím na odkaz zrovna naklikal, tak to tak jednoduše nepůjde.
|
||
Smajchl Profil * |
#10 · Zasláno: 18. 7. 2008, 16:15:56
Imploder: přesně tak to chci :-)
|
||
Nox Profil |
#11 · Zasláno: 18. 7. 2008, 16:29:34
Nevím jestli "vhodné", ale myslim že by ty cookies použít šlo (ať jako JS nebo PHP), vzhledem ke své povaze (nedůvěrné uživatelské nastavení) vhodné
jsou, jen si nejsem jistý strukturou, kterou by uchovávaly, ale asi by to šlo |
||
imploder Profil |
#12 · Zasláno: 18. 7. 2008, 16:45:36
Pak jsou, pokud nechceš při rozbalování/sbalování kategorií tahat nic ze serveru, tyto možnosti:
1) bude to dělat java script a stav se bude ukládat do cookies 2) taky to bude dělat java script a při každém rozbalení nebo sbalení nastaví všem odkazům do proměnné kód, podle kterého pak PHP skript příslušné kategorie sbalí nebo rozbalí. Ten kód nemusí být žádná šílenost, stačilo by číslo od 1 do 2^10 (protože kategorií je 10 a každá může mít 2 stavy). Místo náročného přepisování hrefu ve všech odkazech by snad šlo tam tu proměnnou přilípnout JavaScriptem při události onClick nebo přesměrováním při onUnload. |
||
imploder Profil |
#13 · Zasláno: 18. 7. 2008, 16:47:06
Takže JS v kombinaci s metodou GET se mi jeví jako nejlepší řešení. Nevyžaduje to cookies.
|
||
Nox Profil |
#14 · Zasláno: 18. 7. 2008, 17:44:37 · Upravil/a: Nox
imploder
Ovšem vyžaduje JS + docela dlouhá URL + po opuštění stránky nastavení skončí Šly by asi použít i jiný způsoby (jako session, db...) s tím, že by se ukládalo průběžně vždycky skriptem na začátku stránky |
||
los Profil * |
#15 · Zasláno: 18. 7. 2008, 18:02:09
Prípadne na to môžeš zneužiť window.name, ktoré sa zachováva aj medzi požiadavkami.
|
||
imploder Profil |
#16 · Zasláno: 18. 7. 2008, 18:31:43 · Upravil/a: imploder
Nox
Šly by asi použít i jiný způsoby (jako session, db...) s tím, že by se ukládalo průběžně vždycky skriptem na začátku stránky To je všechno v PHP, každé rozbalení/sbalení by se muselo řešit přes server. Aby se nemuselo nic načítat, na to bude JS potřeba tak jako tak. Rozšíření URL o třeba ?r=1023 (tj. všechny rozbaleny) není přehnaně dlouhé. Až na serveru by se to převedlo na binární číslo. |
||
Leo Profil |
#17 · Zasláno: 18. 7. 2008, 21:20:58
"Prípadne na to môžeš zneužiť window.name, ktoré sa zachováva aj medzi požiadavkami"
A prenasi se i do jine domeny, z cehoz plynou mozne bezpecnostni problemy, Leo |
||
Časová prodleva: 16 let
|
0