Dynamisch menu

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Teun Hesseling

Teun Hesseling

23/05/2012 10:17:24
Quote Anchor link
Goedemorgen,

Over het algemeen maak ik mijn menu altijd statisch door middel van een switch en een get variabele. Maar hoe kun je zoiets dynamisch maken?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<a href="index.php?p=home">Home</a>
<?php
    switch($_get['p']){
        case
"home":
            include 'home.php';
            break;        
    }
    
?>


Ik had al zoiets in mijn hoofd dat je via een stukje cms een soort van bestandsnaam op kunt geven en een titel. In dit geval dus home en dat in een databse opslaan. Maar is dit wel een goeie/slimme manier?
 
PHP hulp

PHP hulp

23/11/2024 23:45:12
 
Bart V B

Bart V B

23/05/2012 10:23:35
Quote Anchor link
Quote:
Ik had al zoiets in mijn hoofd dat je via een stukje cms een soort van bestandsnaam op kunt geven en een titel.


Het kan nog simpeler. ;)
- Je maakt een template.
- Je maakt 1 tabel met title, content e.d.
- maak een query met de $_GET waarde, en fetcht de content titel e.d.

Zo hoef je niet meer te includen van bestand scripts. En is het helemaal dynamisch.
Mocht je bijvoorbeeld een contact form nodig hebben hoef je alleen maar daar een include van het form te maken.
Gewijzigd op 23/05/2012 10:24:49 door Bart V B
 
Teun Hesseling

Teun Hesseling

23/05/2012 10:36:27
Quote Anchor link
dus je bedoeld eigenlijk , dat je gewoon 1 php bestand hebt die continue veranderd. dus een soort van content.php. Maar hoe doe je dat dan met zo'n contact form?
 
Bart V B

Bart V B

23/05/2012 10:39:12
Quote Anchor link
Heel eenvoudig.
Stel, $_GET['p'] = contact, dam haal je de content, titel e.d. op uit de database en include je het script contact.php bijvoorbeeld.
 
Chris PHP

Chris PHP

23/05/2012 10:39:16
Quote Anchor link
Je content kan gewoon HTML opslaan, dus als je het complete form gewoon copy/paste in je content veld. Wordt dit juist op je pagina weergegeven. Laat de verwerking wel door een los script doen, bijv form.php
 
Teun Hesseling

Teun Hesseling

23/05/2012 10:43:10
Quote Anchor link
ohzo, ik zal er is mee gaan prutsen. Bedankt alvast.
 
Bart V B

Bart V B

23/05/2012 10:45:12
Quote Anchor link
Nou dat zou ik nou net weer niet doen Chris. ;)
Ik probeer zoveel mogelijk html, scripts en content te scheiden van elkaar.
<p> <i> e.d. dat neem ik voor lief, maar een compleet formulier dat liever niet in de database.

En dat zeg ik even erbij, want anders krijg je dat mensen eval() uit gaan vinden en dat ik eigenlijk nooit het antwoord op een probleem.

Rasmus Lendorf (vader der php ;) schreef ooit:
Quote:
"if eval() is the answer, you're almost certainly asking the wrong question".
Gewijzigd op 23/05/2012 10:48:58 door Bart V B
 
Chris PHP

Chris PHP

23/05/2012 10:48:52
Quote Anchor link
@Bart,

Maar hij hoeft hier toch geen eval() te gebruiken? Uiteraard is een losse contact.php die hij include beter, maar eval() zie ik hier niet echt een toepassing hebben.
 
Bart V B

Bart V B

23/05/2012 10:53:06
Quote Anchor link
Ik zeg ook niet dat hij het zal uitvinden. :P

Maar mensen gaan naar nog slimmere oplossingen zoeken.
En als je dan al hebt uitgevonden dat je dus een compleet html form in een database kan zetten, dan is die stap al een stuk kleiner.
Vandaar dat dit ik niet het beste advies vind.

Niet alleen dat, maar mocht het html fomulier bijvoorbeeld aangepast moet worden, dan is een file sneller verwerkt dan dit in een database te doen.
Klopt, het is alleen maar tekst natuurlijk, maar niet handig om dit in een databbase te stoppen.
Gewijzigd op 23/05/2012 10:54:32 door Bart V B
 
Reshad F

Reshad F

23/05/2012 12:00:47
Quote Anchor link
@bart is een menu niet veel sneller/simpeler aan te maken als je dit niet in de database maar gewoon in een ini filetje kan zetten? zo doe ik het en gaat echt heel snel :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.