menu opbouw

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zackat

zackat

23/11/2005 23:46:00
Quote Anchor link
Mijn menustructuur is nogal onderhoud gevoelig en zou dat willen veranderen. Weet niet precies hoe en hoe je het beste zoiets zou kunnen opzetten.

werking:
[click] op hoofdmenu laat alle submenu's zien
voorbeeld:
-hoofdmenu-A
---submenu-1
---submenu-2
---submenu-3

[click] in submenu-2 laat alle subsubmenu's in 2 zien
voorbeeld:
-hoofdmenu-A
---submenu-1
---submenu-2
-------subsubmenu-2.1
-------subsubmenu-2.2
---submenu-3

[click] in submenu-3 laat alle subsubmenu's in 3 zien en klapt alle subsubmenu's in 2 in.
voorbeeld
-hoofdmenu-A
---submenu-1
---submenu-2
---submenu-3
-------subsubmenu-3.1
-------subsubmenu-3.2

Voor iedere pagina heb ik het op deze manier staan :-(

Er is vast wel een betere manier. Heb het een en ander met include geprobeerd maar daardoor is het niet dynamisch.
Misschien op te lossen via een database? Iemand die me opweg kan helpen, richting kan geven?
 
PHP hulp

PHP hulp

15/03/2025 03:45:36
 
Jelmer -

Jelmer -

24/11/2005 08:26:00
Quote Anchor link
Je zou het menu kunnen defineren via een multidimensionale array.
Daarnaast maak je dan een functie die de array omzet in een menu (ik zou voor een combinatie van list-elementen (ul, li) en wat javascript gaan).

Dan include je het bestand dat de array en de functie bevat in het begin van je pagina. En daar waar het menu moet komen, roep je de functie aan.

Aan de functie zou je eventueel nog extra parameters kunnen verkopen zoals welk menu is uitgeklapt e.d.

Maar naar welke interactiviteit zoek je precies?
 
Zackat

zackat

24/11/2005 13:21:00
Quote Anchor link
Om eerlijk te zijn ben ik nog erg onervaren in PHP /Webdesign om precies te volgen wat je bedoeld. Met name:

Jelmer:
Aan de functie zou je eventueel nog extra parameters kunnen verkopen zoals welk menu is uitgeklapt e.d.

Maar naar welke interactiviteit zoek je precies?


..ik snap je vraag eigenlijk niet. Antwoorden is erg lastig dan :-). Kun je het anders formuleren?
 
Red Crew

Red Crew

24/11/2005 23:31:00
Quote Anchor link
Ik heb identiek hetzelfde probleem.
Ik vind wel javascripts maar dan moet ik mijn links allemaal in het *.js bestand zetten.

http://users.skynet.be/javascript/menus/navigatie.htm

Mijn bedoeling is echter dat ik het menu zou kunnen intergreren in mijn php bestand.
 
Kees Schepers

kees Schepers

25/11/2005 01:14:00
Quote Anchor link
ik denk niet jelmer bedoelt dat je je menu met javascript gaat genereren of iets dergelijks.

Een goede oplossing is dus via een database, waarmee je een multidimensionale array genereert en daarna een recursieve functie maakt die alle items af gaat.

Dus je hebt dan een tabel in je database waar bijvoorbeeld menu links in staan, en voor elke menu link geef je dus een parent_id op. Parent_id 0 is dan de root. Dan ga je per menu item af of hij een parent is, volgens mij zoiets :P
 
Zackat

zackat

25/11/2005 08:29:00
Quote Anchor link
Hoe zou de tabelstructuur in de database er uit kunnen zien?
 

25/11/2005 16:43:00
Quote Anchor link
Ik denk dat je een database moet maken met

en veld in van 6 cijfers bijv 021203

submenu 02
subsubmenu 12
subsubsubmenu 03
 
Zackat

zackat

26/11/2005 13:05:00
Quote Anchor link
Inmiddels het een en ander gelezen over multidimensionale arrays en snap de werking ervan.

Nu wil ik niet mijn menustructuur opbouwen in mijn pagina's maar genereren vanuit een database.

Uitgaande dat elk menu item een link is, het volgende. Hoofdmenu kan 1 of meerder submenu's hebben. Een submenu kan 1 of meerdere sub sub menu's hebben. Een menu (lees link) kan vanuit verschillende plekken op de site worden aangeroepen.

Waar ik niet uit ben is een correcte tabellenstructuur.
Dit is mijn gedachtengang tot nu toe:
Menu kan in drie groepen worden onderveeld
1. Hoofdmenu's
2. SubMenu's van het hoofdmenu
3. Sub-submenu's van het SubMenu (punt2).

Is het verstandig om de volgende tabellen op te zetten?
A)1 tabel voor ALLE menu's met ID en pad
B)1 tabel voor het Hoofdmenu met ID en pad
C)1 tabel waarin de structuur wordt vastgelegd, een koppeltabel tussen A en B.

Tabel C zou er dan als volgt uit kunnen zien:
ID, ID uit B, ID uit A, Level nr.

Level nr is dan het niveau van een menu(lees link) uit tabel A, waarbij je met 1 zou kunnen aangeven dat het een submenu is en met 2 een sub sub menu.

Als dit een goede manier zou zijn, hoe zou ik de informatie uit de tabel in een multidimensionale array kunnen stoppen? Als dit geen goede methode is, please help. Heb de afgelopen me suf lopen piekeren hoe dit aan te moeten pakken.

Of maak ik het nu allemaal te ingewikkeld en is het niet nodig en kan het allemaal veel simpeler.....
 
Hipska BE

Hipska BE

26/11/2005 14:24:00
Quote Anchor link
volgende velden:
id
level -> hoofd, sub, sub-sub (of 1, 2, 3 )
plaats -> hoeveelste in de rij (1 - ... ) (0 is voor de naam van het level)
naam
url
target

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<? $max = 3;
for ($level = 1; $level <= $max; $level++) {

    $sql = "SELECT * FROM menu WHERE level = ".$level." ORDER BY plaats ASC";
    $res = mysql_query($sql);
    if (mysql_num_rows($res) >= 1)
        {

        while ($menu = mysql_fetch_array($res)){
            for ($i = 1; $i <= $level; $i++) {
                echo "&nbsp;&nbsp;";
            }

            if($menu[plaats] == 0){
                echo "<b>".$menu[naam]."</b><br>\n";
            }
else{
                echo "<a href=\"".$menu[url]."\" target=\"".$menu[target]"\">".$menu[naam]."</a>\n";
            }
        }
    }

}

?>


hiermee kan je het menu laten tonen.
ik heb wel er geen javascript ingestoken om ze te laten tonen/verbergen. dit laat ik aan anderen over die er wat meer overweg mee kunnen.

hopelijk heb je er wat aan
Gewijzigd op 26/11/2005 14:46:00 door Hipska BE
 
- SanThe -

- SanThe -

26/11/2005 14:54:00
Quote Anchor link
id automatisch oplopend
pointer root? dan 0, anders wijst naar id van lagere map
url indien map dan leeg anders url

dus records met deze inhoud
1 0 leeg
2 1 leeg
3 2 www.a.nl
4 2 www.b.nl
5 2 leeg
6 5 www.c.nl
7 1 www.d.nl

geeft deze structuur
root
map
map
www.c.nl
www.a.nl
www.b.nl
www.d.nl
 
Zackat

zackat

26/11/2005 15:59:00
Quote Anchor link
Ik maak geen gebruik van een lege map of root, iedere menu item heeft een pagina.
Gewijzigd op 26/11/2005 16:03:00 door zackat
 
Zackat

zackat

26/11/2005 16:15:00
Quote Anchor link
wat is dan hier eigenlijk de sub sub level?
 
Jan Koehoorn

Jan Koehoorn

26/11/2005 16:18:00
Quote Anchor link
In het voorbeeld van SanThe, zou ik zeggen: 2, en voor sub-sub-sub 3, enz?
 
Zackat

zackat

26/11/2005 16:29:00
Quote Anchor link
??...volgens mij mis is ik dan toch echt wel een kolom...ergens...

volgens mij kun je op deze manier niet meer achterhalen welk submenu bij welk hoofdmenu hoort......?

zackat:
Uitgaande dat elk menu item een link is, het volgende. Hoofdmenu kan 1 of meerder submenu's hebben. Een submenu kan 1 of meerdere sub sub menu's hebben. Een menu (lees link) kan vanuit verschillende plekken op de site worden aangeroepen.
Gewijzigd op 26/11/2005 16:30:00 door zackat
 
Jan Koehoorn

Jan Koehoorn

26/11/2005 16:42:00
Quote Anchor link
Ik heb niet het hele topic gevolgd, maar even je beginpost gelezen. Zo'n boomstructuur opzetten is lastig. Je hebt verwijzingen nodig als: parent, child, sibling, enz. Ongeveer zoals het in het DOM gebeurt. En dan nog allerlei functies om het snel uit te kunnen lezen uit je database en te presenteren (zodat de goede menu-items zichtbaar en onzichtbaar worden).

Het is wel te doen, maar een simpel scriptje is het niet.
 
Zackat

zackat

26/11/2005 16:56:00
Quote Anchor link
begin van de topic laat goed zien wat er nu is en de werking van 1 Hoofdmenu (totaal 6).
In mijn eigen quote, van mijn vorig bericht beschrijf ik de onderlinge relaties.

Probleem is wel helder dacht ik zo, zoniet dan moet ik het op een andere manier duidelijk maken.

Dat het te doen is, klinkt eindelijk als muziek in mijn oren!! en aangezien je muziekleraar bent :-)...

Ik ben cker een beginner en dat het niet makelijk is, moet dan maar een xtra uitdaging worden.

Ik moet een hele goede start maken met het opzetten ervan en daarbij is alle phphulp welkom.

Het begint toch met het concept van de tabellen die ik duidelijk moet hebben.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.