Du kommer nok til at forklare noget mere. Får brugeren præsenteret en html form med kategorier, og når brugeren har valgt en kategori, får brugeren så en ny html form ular med kategorien fyldt ud og hvor brugeren så kan vælge en under kategori? Er der altid præcist to niveauer, kategori og underkategori? Eller kan der forekomme kategorier uden under kategorier og kan der forekomme underkategorier der har under-under kategorier? Når brugeren har valgt det laveste niveau kategori/underkategori/underunder... hvad skal der så ske? Skal alle annoncer der svarer til valget vises? Hvor og hvordan gemmer du kategorier og underkategorier. Har du kodeafsnit du kan vise?
Jeg ser, at du i eksemplet gemmer kategorier og underkategorier 'hardcoded' i en slags multi-dimensionel array. Det er naturligvis, som du siger, ikke nogen fleksibel løsning. Yderligere sker der ikke andet i eksemplet end at man kan vælge kategorier. Formodenlig er meningen, at annoncerne for den valgte kategori/underkategori....skal vises. Og du synes at gå ud fra præcis tre kategori niveauer. Måske vil du hellere have antallet af niveauer fleksibelt.
Jeg vil jo mene, at du skal gemme kategorierne i en database tabel, såsom:
kategorier id parent navn 1 0 Elektronik 2 0 Have & fritid 3 1 bærbar 4 1 netværk 5 2 potteplanter 6 3 røde bærbare 7 0 vindmøller o.s.v. I dette eksempel er elektronik en hoved kategori, derfor er parent 0. Elektronik har bærbare og netværk som children, derfor er parent for disse 1, id'en for elektronik, og bærbare har en tredje-niveau child røde bærbare (hvis noget sådan findes). Netværk har i dette eksempel ingen children, og vindmøller, en hoved kategori, har ingen children. Så siger du, at du vil have mulighed for at oprette nye hovedkategorier. Du vil velsagtens også kunne oprette nye underkategorier og underunder kategorier. Disse indfører du så i database tabellen.
Samtidig har du vel så annoncerne i en anden database tabel såsom
annoncer id kategori indhold 1 7 Dette er en blå vindmølle... 2 7 Denne fine vindmølle møller mest vind ..... 3 3 Du har brug for en rød, sød, og blød bærbar
Så ville jeg nok lave det således, at når den side du viser genereres, så sker der et database kald såsom "SELECT * FROM kategorier WHERE parent = 0". Resultatet viser du så i den første rulleliste med navnet vist og med id'en hidden. Når så brugeren har valgt en hovedkategori sker der påny et database kald noget i retning af "SELECT * FROM kategorier WHERE parent = $id", hvor $id rummer den 'hidden' id for den valgte hovedkategori.
Hvis dette database kald ikke giver resultat, det vil sige, at der ikke er underkategorier (såsom hvis vindmøller var valgt), så foretages der et nyt databasekald såsom "SELECT * FROM annoncer WHERE kategori = $id". Annoncerne for denne kategori vises så. Hvis der derimod er kategorier der har $id som parent, så vises rulleliste nummer to med disse kategorier, og efter valg af kategori startes der forfra: Database kald til kategorier, hvis der ikke er bid, så vis annoncer, hvis der er bid så lav den næste rulleliste, o.s.v.
På den måde kan der dannes, i princippet, et uendeligt antal niveauer af underkategorier, og man kan have annoncer knyttet direkte til en hovedkategori.
Mads < Det ser jo meget hardcoded ud i javascriptet :/ eller er der noget der jeg har misforstået? men ellers ja, så gør det egentlig det jeg efterlyser
Christian < Det er helt korrekt kategorierne er oprettet i en database og derfor bliver det også pludselig variabler, da de kan slettes og der kan oprettes nye...
Så min kategori database opbygning ser sådan her ud
zombien, Jeg er lige kommet hjem, en hurtig en: jeg havde misforstået #2 eller ikke kikket ordenligt efter, jeg opfattede, at den var fra dig. Det var baggrunde for mit indlæg #3. Jeg skal kikke igen, men det bliver nok i morgen.
zombien, ok så er jeg her igen og har fået styr på hvem der har skrevet hvilke indlæg. Du siger i #4, at hvis man vælger Elektronik som hovedkategori skal den gerne hente alle der har forældreid 1. Men det i sig selv kan vel ikke være et problem: "SELECT * FROM kategori WHERE forældreid = 1" .
Men det skal naturligvis ikke være forældreid = 1, men afhænge af hvilken hovedkategori brugeren har valgt. Så hvordan ved programmet hvad brugeren har valgt? Brugerens valg skal jo resultere i en variabel der bliver sendt til det programafsnit der kalder databasen. Hvis for eksempel brugerens valg bliver gemt i variabelen $valg, så bliver database forespørgslen SELECT * FROM kategori WHERE forældreid = "$valg" . Det er vi vel også enige om.
Så hvordan har du tænkt dig at lade brugeren vælge kategori? Hvor langt er du selv kommet med at kode det? Det var noget af det jeg prøvede at finde ud af i min #2.
zombien, kom du fra det igen? Du har ikke været inde og reagere på indlæg siden 7 august. Hvis spørgsmålet ikke længere er aktuelt, så luk det venligst igen. Ellers kom ind og fortæl din videre hensigt.
Hej og beklager meget det sene svar, kom da helt fra mit spørgsmål herinde så det beklager jeg meget Christian og tak fordi du mindede mig om det...
problemet er bleven løst og det blev følgende måde den blev løst på Jeg lagde en OnChange="location.href=nav1.hovedkategori.options[selectedIndex].value" på min select
men da der er gået så langtid osv. så lig lige et svar Christian, så kan du få halvdelen af points sammen med MadsHaupt
Ok, et svar fra mig, så vi kan få spørgsmålet lukket.
Synes godt om
Ny brugerNybegynder
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.