Autor Zpráva
H13
Profil
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
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
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
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
H13 - sorry, ale presné riešenie Ti nedám... Máš vlastnú hlavu, používaj ju.
krteczek
Profil
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
možná by byl nejjednodušší JavaScript...
$×$
Profil *
taky bych to resil pomoci JavaScript && CSS
Jack Finger
Profil
něco takovýhleho:


<script type="text/javascript">
function subcats(){
sub = document.getElementByID('subcats').style;
if(sub.display == "none"){
sub.display = '';
}
else {
sub.display = 'none';
}
}
</script>

<a href="kategorie" onclick="subcats()">kategorie</a>
<div id="subcats" style="display:none;">
<a href="subkategorie">subkategorie</a>
<a href="subkategorie">subkategorie</a>
<a href="subkategorie">subkategorie</a>
</div>
H13
Profil
Ř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
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
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...
nuninek
Profil
H13
Ahoj můžeš mi poradit, řeším stejný problém, mam to také pomocí db. Děkuji nuninek ICQ 252746181

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: