Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 22. 8. 2007, 20:34:14
Ahoj, vytvořil jsem si rozbalovací menu, které používá databázi... Uživatel klikne na kategorii, do databáze se zapíše, že mají být zobrazeny podkategorie a při načtení stránky se podkategorie zobrazí - vše funguje skvěle...jenže to znamená, že když využívám k zobrazení informace z databáze, pak to může dělat problém, když si stránku prohlíží více uživatelů... Jde to nějak ošetřit nebo to budu muset udělat bez databáze (což je pro mě problém, např. se tříděním pole podle určitých kritérií...)
Díky za jakoukoliv radu |
||
Apostolus Profil |
#2 · Zasláno: 22. 8. 2007, 20:40:17
Mno rozbalovací menu v php je dost nezvyk, většinou se to dělá celý javascriptu nebo css, tím se vyhneš tomuhle problému. Nevím jak vypadá ten script pro zobrazení podkategorií, ale jiný řešení jak cookies nevidím. Můj názor.
|
||
tiso Profil |
#3 · Zasláno: 22. 8. 2007, 20:49:57
H13 - existuje jedno riešenie: viacrozmerné pole, v ňom linky a ako prepínač slúži url adresa. Musíš len zabezpečiť aby štruktúra stránok kopírovala štruktúru v menu - čiže podmenu bude v podadresári. Používam, nedávno som to nahodil na web acp.sk
|
||
H13 Profil |
#4 · Zasláno: 22. 8. 2007, 21:01:04 · Upravil/a: H13
tiso
- původně jsem to měl ve poli - vložil jsem to tam pomocí rekurzivní funkce a pomocí url (GET) jsem to zobrazoval...jenže nevím proč, ale rozhazovali se mě jednotlivý kategorie a já je neuměl uspořádat takže jestli máš nějaké řešení, byl bych za něj rád...v databázi mám id, a catid s tím že strom si zobrazuju pomocí rekurzivní fce od rootu až po jednotlivý konce |
||
tiso Profil |
#5 · Zasláno: 22. 8. 2007, 21:34:07
H13 - sorry, ale presné riešenie Ti nedám... Máš vlastnú hlavu, používaj ju.
|
||
krteczek Profil |
#6 · Zasláno: 23. 8. 2007, 06:33:38
H13: jedno z reseni je vygenerovat menu vzdy pri urcite zmene v db (pridas clanek, smazes, zmenis jeho nazev..) a to pouzivat...
|
||
Jack Finger Profil |
#7 · Zasláno: 23. 8. 2007, 10:33:01
možná by byl nejjednodušší JavaScript...
|
||
$×$ Profil * |
#8 · Zasláno: 23. 8. 2007, 11:22:22
taky bych to resil pomoci JavaScript && CSS
|
||
Jack Finger Profil |
#9 · Zasláno: 23. 8. 2007, 11:29:37
něco takovýhleho:
|
||
H13 Profil |
#10 · Zasláno: 23. 8. 2007, 12:51:59
Řešit pomocí Javascriptu to nemůžu, protože v tom menu provádím různý akce - zveřejnění, zneveřejnění, posunutí položky nahoru, posunutí položky dolů, smazání a všechny tyto akce nejprve provedou změnu v databázi a pak dojde k refreshi stránky, proto by mi javascript (myslím tím jednoduchý) nepomohl... (po každým refreshi by se menu opět sbalilo)...samozřejmě bych to mohl řešit pomocí ajax ale to by bylo mnohem složitější (pro mě)
Problém je v tom, že to pole musím skloubit s rekurzivní funkcí, protože to menu může být rozvětvené do nekonečna...takže jsem v bodě kdy bez pomocí zapisování hodnot do databáze dokážu sestavit (pomocí php vypsat) strom menu (GET mi řekne, který submenu mám být rozevřený a kam), jenže mi právě v té rekurzivní funkci dochází k tomu, že se prvky pole rozhodí a já nedokážu vícerozměrné pole (hodně vícerozměrné) setřídit podle kriteríí - nadkategorie a potom pořadí v kategorii, což je pomocí databáze velmi jednoduché... |
||
tiso Profil |
#11 · Zasláno: 23. 8. 2007, 13:15:29
H13 - ešte raz som si to prečítal a ty vlastne potrebuješ naviazať zobrazovanie na každého užívateľa - v tom prípade máš na výber - parameter v url, session, alebo cookie, neukladaj to info do DB... Prípadne ešte prihlasovanie, potom to môžeš ukladať do DB spolu s id prihláseného užívateľa, bude to treba trošku prekopať...
|
||
H13 Profil |
#12 · Zasláno: 23. 8. 2007, 15:37:21
tiso
Tak jsem to konečně vyřešil (bez vkládání dat do databáze, takže bez identifikace uživatele - cookie, session): - na začátku skriptu jsem vložil informace z databáze do objektového pole a každému objektu jsem přiřadil: [display] => 0 - poté jsem ze získaného id (url - GET['id']) zjistil strom této položky od id do rootu (rekurzivní fce) a všem hodnotám ve stromu id jsem změnil: [display] => 1 např.: - navíc jsem dal [display] => 1 také položkám na stejném levelu nadkategorie Tím jsem získal objektové pole, ve kterém byly uvedeny všechny zobrazené položky a toto pole stačilo projet rekurzivní funkcí tak aby se graficky rozvětvilo díky moc za rady... |
||
Časová prodleva: 2 roky
|
|||
nuninek Profil |
#13 · Zasláno: 4. 7. 2009, 18:56:11
H13
Ahoj můžeš mi poradit, řeším stejný problém, mam to také pomocí db. Děkuji nuninek ICQ 252746181 |
||
Časová prodleva: 15 let
|
0