Avatar billede hewa Nybegynder
06. februar 2007 - 16:18 Der 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)

På forhånd tak for hjælpen!
Avatar billede jakobdo Ekspert
06. februar 2007 - 21:56 #1
Jeg vil gerne have lidt mere info om problemstillingen.
Dynamisk menu skulle ikke være det store, men tekst og dynamisk nederst forstår jeg ikke.
Avatar billede hewa Nybegynder
07. februar 2007 - 07:31 #2
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 :)
Avatar billede jakobdo Ekspert
07. februar 2007 - 07:55 #3
Du kan jo lave en dynamisk side med udtræk fra en database på denne måde:

<?php
//Her kommer din faste HTML top...

//Her kommer noget fra databasen...

//Her kommer din faste HTML bund...
?>

Er det ikke bare det?
Avatar billede hewa Nybegynder
07. februar 2007 - 08:02 #4
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å?
Avatar billede jakobdo Ekspert
07. februar 2007 - 08:09 #5
Jeg forstår ikke hvad du mener med dynamisk under under indholdet?
Avatar billede hewa Nybegynder
07. februar 2007 - 08:33 #6
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.

Forstår du hvad jeg mener?
Avatar billede jakobdo Ekspert
07. februar 2007 - 08:48 #7
Der ville jeg nok overveje at hardcode den side så, og så lade vær med at gemme den i databasen.
Avatar billede hewa Nybegynder
07. februar 2007 - 08:51 #8
Jeg har lige prøvet at stikke noget sammen, der viser, hvad jeg mener:
http://www.crazyinlove.dk/index.php?cat_id=4

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? :)
Avatar billede jakobdo Ekspert
07. februar 2007 - 08:55 #9
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";
}
Avatar billede hewa Nybegynder
07. februar 2007 - 09:04 #10
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.
Avatar billede jakobdo Ekspert
07. februar 2007 - 09:08 #11
Du kunne lave noget i stil med:

Toppen.

din historie side...

her henter den så data fra databasen alt efter hvilket ID du har angivet.

Bunden.
Avatar billede hewa Nybegynder
07. februar 2007 - 09:13 #12
Ja, det var det, jeg tænkte, men hvordan ser koden ud? Jeg forstår ikke helt, hvordan jeg kan bygge case 1 og 2 sammen med det jeg står med.
Avatar billede jakobdo Ekspert
07. februar 2007 - 09:24 #13
Her kan du læse lidt om switch/case: http://dk2.php.net/switch
Avatar billede hewa Nybegynder
07. februar 2007 - 09:45 #14
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)
Avatar billede jakobdo Ekspert
07. februar 2007 - 10:00 #15
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)
Avatar billede hewa Nybegynder
07. februar 2007 - 10:16 #16
Okay, det forstår jeg godt - tak for hjælpen :)
Smid et svar, så er der point på vej til dig!
Avatar billede jakobdo Ekspert
07. februar 2007 - 10:30 #17
Svar!
Avatar billede jakobdo Ekspert
07. februar 2007 - 10:48 #18
Takker for point.
Avatar billede hewa Nybegynder
07. februar 2007 - 10:51 #19
Og det virker sgu, jeg har lige lavet en lille test :)
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