Avatar billede Slettet bruger
21. december 2010 - 21:11 Der er 4 kommentarer og
1 løsning

Loope kategorier og underkategorier med ind i select-felt

Hej eksperter, håber det her giver mening :-)

Jeg sidder og leger lidt med "Moodle" - et php-kursussystem. Det jeg ønsker er at få præsenteret alle min kurser i en select menu i stil med:

- Course_category_1/Course_sub_category_1/Course_1
- Course_category_1/Course_sub_category_1/Course_2
- Course_category_1/Course_sub_category_2/Course_3
- Course_category_1/Course_4

Ok, så langt så godt. Jeg har først en tabel, der hedder "mdl_course", der lister alle ens kuser. De vigtige data er her:
- id (autonum)
- category (tal svarende til kategori-id (se nedenfor))
- fullname (kursets navn)

Der er så endnu en tabel ("mdl_course_categories"), der lister info om kategorier, her er flg. data vigtige:
- id (autonum - og altså det "category" ovenfor refererer til)
- name (navn på kategori)
- parent (id på parentkategori (altså det jeg lige har listet som "id" i linien ovenfor), hvis den pågældende kategori er en underkategori)
- path (lister stien eller forholdet mellem kategorier, eks. "/3/4")


I min liste er jeg nu kommet til:
  <option value="<?php echo $kursus_id; ?>"><?php echo $kategori_navn; ?>/<?php echo $kursus_navn; ?></option>

men jeg kan kun greje at liste kategorien hvortil et kursus tilhører - når der skal underkategorier med i loopet, så rækker min kunnen desværre ikke... Er der nogen, der kan gennemskue, hvordan jeg får det med?

---
Her er et par screendumps af databasen:
mdl_course:
http://www.myupload.dk/showfile/r708966d9ff8.PNG

mdl_course_categories:
http://www.myupload.dk/showfile/r708968a3abb.PNG
Avatar billede jakobdo Ekspert
21. december 2010 - 21:30 #1
Jeg tror desværre ikke jeg forstår din sammenhæng på dine tabeller.
Kan du forklare det med lidt data fra din tabel og hvordan det evt. ville se ud, når det var sat korrekt op ?
Og så kan jeg måske gennemskue hvordan noget kode der laver dit ønskede output, kunne se ud ?
Avatar billede Slettet bruger
22. december 2010 - 09:19 #2
Hej Jakob,

Jeg prøver gerne, værdsætter al hjælp...

Her er et billede af kurserne i databasen:
http://img149.imageshack.us/img149/8244/mdlcourse.png

Og her er et billede af kategorierne:
http://img146.imageshack.us/img146/6707/mdlcoursecategories.png

Her BURDE (altså det er det jeg ønsker) det komme frem således:
- 1.semester/Kursus_1_1.semester
- 3.semester/Kursus_1_3.semester
- 3.semester/Kursus_2_3.semester
- 3.semester/Kursus_3_3.semester
- 3.semester/Underkategori i 3.semester/Kursus_i_underkategori

osv.

Dvs. Kursus_1_3.semester, Kursus_2_3.semester og Kursus_3_3.semester har alle "category=3" og knytter sig altså til kategorien med "id=3" (3.semester).

Så langt så godt - MEN - det er her det bliver tricky: Kurset "Kursus_i_underkategori" knytter sig til kategori-id 4 ("Underkategori i 3.semester") - og som du kan se er denne kategori en underkategori til "3. semester" (id=3). Det angives dels under "parent", hvor der står "3", og under "path" hvor der står "/3/4" (på dette billede, altså: http://img146.imageshack.us/img146/6707/mdlcoursecategories.png)

Så det er hvordan jeg får vist disse underkategorier i min liste...
Avatar billede jakobdo Ekspert
22. december 2010 - 09:23 #3
Og hvordan ville det skulle se ud, hvis du skulle skrive det i html ?
Avatar billede Slettet bruger
22. december 2010 - 09:37 #4
Noget i stil med:

<select name="" multiple="multiple" size="15">
  <option value="5">1.semester/Kursus_1_1.semester</option>
  <option value="8">3.semester/Kursus_1_3.semester</option>
  <option value="7">3.semester/Kursus_2_3.semester</option>
  <option value="6">3.semester/Kursus_3_3.semester</option>
  <option value="9">3.semester/Underkategori i 3.semester/Kursus_i_underkategori</option>
</select>
Avatar billede Slettet bruger
05. januar 2011 - 08:43 #5
Lavede en helt anden løsning... Det ovenstående blev alt, alt for tricky... Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester