/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Dynamisk menusystem i flere niveauer
Fra : Torben Heikel Vinthe~


Dato : 30-01-03 15:53

Hej

Jeg har et lille problem, som jeg håber nogen kan hjælpe mig med.
Jeg er ved at lave et dynamisk menusystem med flere
niveauer/undersider. Jeg har lagret de enkelte sider i Mysql på
følgende måde:

id parent_id titel
--------------------------
1 0 Forside
2 1 Kontakt
3 0 Dyr
4 3 Pattedyr
5 4 Hest
6 3 Fisk
(parent_id indikerer hvilket id den ovenstående side har).

Jeg vil nu gerne udskrive en oversigt over strukturen, så det ser
ud nogenlunde på denne måde:

Forside
+ Kontakt
Dyr
+ Pattedyr
- Hest
+ Fisk

Hvordan får jeg "spyttet" siderne ud på en nem måde, som også
tager højde for, at der kan indsættes flere undersider (fx en
underside til "hest")?

På forhånd tak for hjælpen!
Torben Heikel Vinther

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Tinky Winky (30-01-2003)
Kommentar
Fra : Tinky Winky


Dato : 30-01-03 16:16

> Forside
> + Kontakt
> Dyr
> + Pattedyr
> - Hest
> + Fisk
>
> Hvordan får jeg "spyttet" siderne ud på en nem måde, som også
> tager højde for, at der kan indsættes flere undersider (fx en
> underside til "hest")?

Rekursion (dvs. du har en funktion der kalder sig selv).

Fx kunne det gøres noget i retning af sådan her:

skrivMenu($parentId, $niveau) {
skriv alle menupunkter med $parentId.
Der laves indrykning alt efter $niveau
Hvis punktet har børn skal der skrives et + eller - alt efter om punktet
er foldet ud. Desuden kaldes skrivMenu($nuværendeId, $nuværende niveau+1);
/* <-- der har du rekursionen */
}

Om punktet har børn kan evt. implementeres ved at have et felt i
databasen(eller hvad du har) der indikerer om et punkt har underpunkter -
eller også kan man checke det ved at se om der er nogen punkter der referer
til det pågældende punkt i parentId.



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste