06. februar 2007 - 16:18Der er
18 kommentarer og 1 løsning
Hjælp til dynamisk menu og dynamisk indhold
Jeg har lavet en løsning, hvor jeg kan oprette nye områder i browseren og jeg kan bestemme om de skal vises eller ej og hvilken rækkefølge, de skal vises i. Så langt så godt - dog har jeg et problem, hvis der skal skabes dynamisk indhold på siden. Se dette eksempel, hvor hele menuen trækkes ud af databasen:
Forsiden (ren tekst og billeder) Side 1 (ren tekst og billeder) Side 2 (ren tekst og billeder) Side 3 (tekst øverst og dynamisk nederst) Side 4 (tekst øverst og dynamisk nederst) Side 5 (ren tekst og billeder)
De sider der består af ren tekst og billeder er ikke noget problem. Der lægger det i databasen og er opbygget i tekst og html.
Der hvor problmet opstår, er, når der skal laves noget dynamisk under teksten, som lægger øverst på siden. Det kunne f.eks. være et debatforum, som kører i et niveau, og kommer man ind på en tråd, trækkes hele tråden ud efter oprettelses tidspunkt.
Et andet eksempel kunne være, at man kan fortælle sin historie, så øverst er der en tekst, der fortæller, hvad man kan og nedenunder trækkes overskriften ud på hver histoier, og klikker man på overskriften, kan man læse hele historien.
Jeg kan godt lave det, men så bliver det en hårdkodet menu og alle tekster bliver lagt i forbindelse med koden - og jeg vil jo gerne have, at det hele er dynamisk og at alle tekster bliver lagt i databasen.
Er det ikke til at forstå, må du endelig sige til!! (det må jo være den samme problemstilling de fleste hjemmeside-programmører har stået i på et tidspunkt)
Det jeg mangler, er en ide til, hvordan jeg kan lave f.eks. dette: Her kan du læse andres historier og vi vil også meget gerne have din bla, bla (det øverste som er trukket ud fra databasen)
Opret din egen historie (link til en oprettelses side)
Læs andres historier (og det er det, jeg ikke kan rumme, hvordan jeg laver) Histrie 1 Histrie 2 Histrie 3 (De bliver genereret dynamisk, hvor den nyeste historie ligger øverst og når man trykker på en af historierne, vises den)
Jeg var gået i gang med at bruge eval(), således at min php kode til at generere det nederste, lå i databasen som den øverste tekst - men så fik jeg at vide, at det ikke var så sikkert, "hvis eval() er svaret, har du stillet det forkerte spørgsmål". Derfor søger jeg en anden måde at gøre det på. Forstår du problemstillingen?
Og det er det, jeg mener, der må være 1000 vis, der har villet lave noget a la det samme, men jeg søgt og søgt efter et svar på det, men jeg har ikke fundet det - som om andre ikke har stået i det før, eller alle andre han kunnet gennemskue det med det samme :)
Det er sådan jeg gør nu, så henter jeg overskriften og indholdet fra databasen - men hvis jeg skal have noget forskelligt dynamisk under under indholdet og ikke skal bruge eval() hvad gør jeg så?
Indholdet er for mig, den tekst der bliver hentet i databasen. Det er tekst og html og det virker som det skal på Forsiden, Om sitet, Kontakt og i den dur.
Omkring det med at fortælle sin historie eller debatten, er der stadig en tekst, der bliver hentet i databasen, men udover det bliver trådene i debatten eller historierne hentet et andet sted fra databasen i form af links, hvor man så kan klikke på dem for at se historien eller debatten. Det er det, jeg mener, der er det dynamiske, da det jo bliver skabt fra gang til gang og ændre sig efterhånden, som der kommer indhold i.
I cellen med teksten og htmlen kan jeg lægge php til at trække det ud via eval, men det var det, jeg gik væk fra, da det skulle være lidt usikkert.
Overskriften, teksten og Fortæl din historie ligger i en celle i databasen.
De to nederste links bliver så genereret dynamsik, men de skal jo kun dukke op hvis id=4 - gud, det slår mig lige... skal jeg så lave et tjek på url'en, at hvis id=4, skal den trække sådan og sådan ud fra databasen og hedder debatten id=7, skal den trække såda og sådan ud?
Mit projekt har været gået i stå den sidste uge, da jeg ikke har kunne løse det - jeg har tænkt huller i jorden og læst og læst og søgt og søgt - og så er det måske svaret? :)
Du kunne godt lave et tjek på id ja! F.eks. kan du lave: switch($_GET['id']) { case 1: echo "DU har valgt ID 1"; break; case 2: echo "DU har valgt ID 2"; break; default: echo "DU har ikke valgt noget"; }
Jeg er ny i det her, har kun været i gang i knap en måned :) så jeg ved ikke helt hvad switch dækker over, men hvordan skulle koden så se ud, hvis id=4, skal den lave et udtræk og en visning, men er id=7, skal den hente et andet sted og dermed vise noget andet og igen på id=9. Hvis ingen af dem er valgt, skal den bare afvikle resten af koden uden at sætte noget ind.
Inden jeg deler point ud, vil du så ikke lige være rar at svare på, om jeg kan bruge den sådan, ud fra eksemplet herover: switch($_GET['id']) { case 4: forespørgsel til database; echo "vis forespørgsel"; break; case 7: forespørgsel til database; echo "vis forespørgsel"; break; case 9: forespørgsel til database; echo "vis forespørgsel"; break; }
Altså hvor case springer skævt og ikke 1, 2, 3 osv. og uden defalut.
(Ikke nok med jeg er ny, så er jeg ikke nogen ørn til engelsk)
Du kan godt lave cases som du har lavet der! Men jeg ville nok overveje at lave siden på denne måde så:
oversigt.php Her viser du så alle dine historier med et link til dem, f.eks.: laes_historie.php Hvert link laver du så som: laes_historie.php?id=1, 2, 4, 7 osv... Trykker man på laes_historie.php?id=1 så henter den historien med id 1 fra databasen og viser på din læse side. (altså en anden side end oversigten)
Og det virker sgu, jeg har lige lavet en lille test :)
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.