Üdv!
Van egy ilyen táblám amiben a fő és alkategóriákat tárolom.
id - category_name - maincategory_id, ahol a maincategory_id gyakorlatilag annak a kategóriának az azonosítóját tárolja amely a főkategóriája.
A kategóriákat egy select-option mezőbe szeretném betenni valahogy így.
Autó > Személyautó
Autó > Személyautó > Audi
stb.
Tud valaki segítenni ebben?
- 1667 megtekintés
Hozzászólások
Ezek itt szerintem nagyágyúk, n szintű kategorizálásra valók, itt fixen 2 szint kell.
- A hozzászóláshoz be kell jelentkezni
Ha megrendelésre készül az oldal, felejtsd el azt a szót, hogy fix :)
----------------
Lvl86 Troll
- A hozzászóláshoz be kell jelentkezni
Mi a feladat? pl. autó behelyezése egy kategóriába? (2 db select)
Megvan az elképzelésed, hogy hogy nézzen ki? A 2 szint miatt sokféleképpen lehet:
- főkategória kiválasztása, majd oldal újratöltése a második listával - ez a legegyszerűbb és egyben böngészőfüggetlen eljárás, miközben bookmarkolható, indexelhető, stb., cserébe kisebb a felhasználói élmény
- főkategória kiválasztása, majd AJAX-szal betölteni a második kategórialistát
- minden kategóriát bele a listába, esetleg a kategóriák mellett jelezni, hogy melyik főkategóriába tartozik. Ha nincs túl sok kategória, talán még jobb is, mint az első
- sok egyéb
- A hozzászóláshoz be kell jelentkezni
aha
ha jól értem erről van szó:
id - category_name - maincategory_id
magyarosabban:
id, név, szülő_id
kell egy fix root elem, ami a szülője az első szintnek (vagy simán csak kinevezni a 0 id-t a gyökérnek)
Az alkategóriát úgy kapod meg hogy lekéred kiknek ő a szűlője
select * from tábla where szülő_id="szülő"
Pl:
id, neve, szülő_id
0, root, -1
1, Autó, 0
2, Ford, 1
3, Audi, 1
4, Mondeo, 2
5, Sierra, 2
6, A6, 3
7, A8, 3
8, Motor, 0
9, Suzuki Motors, 8
10, RM-Z250, 9
pl:
Fő kategória megkapása:
select * from tábla where szülő_id="0"
ez kilistázza, hogy Autó (1), Motor (8)
autó kategória tartalma:
select * from tábla where szülő_id="1"
ebből: Ford(2), Audi(3)
Ford kategória tartalma:
select * from tábla where szülő_id="2"
ebből: Sierra(4), Mondeo(5)
Ezeket szépen ciklusokba téve, az eredményből szedett értékeket felhasználva le lehet generálni az optionokat.
-Vagy csak az éppen kiválasztottat generálod le, de akkor minden választásnál újra kell tölteni az oldalt,
-vagy legenerálod az összes lehetőséget és kliens oldalt javascripttel cserélgeted a megfelelő optionokat.
-vagy ajax-szal szerver oldalt mindig legeneráltatod ami épp kell.
- A hozzászóláshoz be kell jelentkezni
Köszönöm az eddigi válaszokat. Szóval a fő gondom az, hogy bármennyi kategória lehet és bármennyi alkategória is. Sőt az alkategóriák is lehetnek egyben főkategóriák. Tehát nincs adott kategória szám. Ezt hogyan rendezzem cikluba?
- A hozzászóláshoz be kell jelentkezni
Lásd #1 felül.
Az első egy egyszerű, de pazarló megoldás.
A második kicsit bonyolultabb, de jóval takarékosabb is egyben.
- A hozzászóláshoz be kell jelentkezni
De nekem ilyen formában kellene:
Autó
Autó > Személyautó
Autó > Személyautó > Audi
Autó > Teherautó
stb..
- A hozzászóláshoz be kell jelentkezni
Akkor minden elemnek adsz egy azonosítót és egy szülőelem-hivatkozást (a szülő elem id-ja). A menü gyökerében a 0 szülőjű gyökérelemek vannak.
Végigméssz az eredményhalmazon, ami 0 szülőjű, az megy a kimenettömbbe. Aztán végigméssz ezen a tömbön, és keresed az eredményhalmazból a gyerekeket, persze rekurzívan.
- A hozzászóláshoz be kell jelentkezni
néha láthatatlannak érzem magam :D
http://hup.hu/node/70287#comment-760828
Egyébként már annyi infót kaptál első komment linkjén is, hogy szinte már meg is van írva a feladat :P
- A hozzászóláshoz be kell jelentkezni