URL en tekst linken
Ik ben afgelopen week begonnen mij te verdiepen in PHP. HTML en CSS kennis had ik al. De website die ik bouw, is opgebouwd uit een header.php - page.php - footer.php. In alle pagina's include ik de header.php en footer.php, de page.php kan contact, portfolio, over mij pagina zijn etc.
Rechtsboven in header.php heb ik een button ingebouwd, waar naar een andere pagina gelinkt moet worden. Het idee is echter dat die button-tekst en URL per pagina verschillen.
Voorbeeld:
- in de pagina portfolio.php moet de button de tekst 'Contact' weergeven en de URL 'contact.php'
- in de pagina overmij.php moet de button de tekst 'Portfolio' weergeven en de URL 'portfolio.php'
- etc.
De tekst variabel weergeven is mij gelukt met onderstaande code in header.php:
Quote:
Hoe zorg ik echter voor een variabele URL (eventueel direct gelinkt aan de weergegeven naam)?
Groet,
Peter
Gewijzigd op 17/12/2013 15:45:48 door Peter van Remmen
Je hoeft trouwens niks te echoen tussen haakjes. Dat kan ook gewoon zo:
Onderstaande afbeelding is in principe de header.php. Het gaat om de button die rechtsboven staat. Waar nu contact staat, wil ik per pagina een variabele naam en url invullen:
Gewijzigd op 17/12/2013 16:00:19 door Albert de Wit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width'>
<?php echo ("
<title>$title</title>
<meta name='keywords' content='$keywords'>
<meta name='description' content='$description'>
");
?>
<link rel='stylesheet' href='css/normalize.css'>
<link rel='stylesheet' href='css/main.css'>
<link rel='stylesheet' href='css/responsivemobilemenu.css' type='text/css'/>
<script type='text/javascript' src='http://code.jquery.com/jquery.min.js'></script>
<script type='text/javascript' src='js/responsivemobilemenu.js'></script>
<script src='js/vendor/modernizr-2.6.2.min.js'></script>
<script src='js/plugins.js'></script>
</head>
<body>
<div id="header">
<div class="rmm">
<ul>
<li><a href='index.php'>Home</a></li>
<li><a href='portfolio.php'>Portfolio</a></li>
<li><a href='pitches.php'>Pitches</a></li>
<li><a href='tarieven.php'>Tarieven</a></li>
<li><a href='overmij.php'>Over mij</a></li>
<li><a href='contact.php'>Contact</a></li>
</ul>
</div>
<div class="top_button">
<?php echo '<p>'.$button_name.'</p>' ?>
</div>
</div>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
<meta name='viewport' content='width=device-width'>
<?php echo ("
<title>$title</title>
<meta name='keywords' content='$keywords'>
<meta name='description' content='$description'>
");
?>
<link rel='stylesheet' href='css/normalize.css'>
<link rel='stylesheet' href='css/main.css'>
<link rel='stylesheet' href='css/responsivemobilemenu.css' type='text/css'/>
<script type='text/javascript' src='http://code.jquery.com/jquery.min.js'></script>
<script type='text/javascript' src='js/responsivemobilemenu.js'></script>
<script src='js/vendor/modernizr-2.6.2.min.js'></script>
<script src='js/plugins.js'></script>
</head>
<body>
<div id="header">
<div class="rmm">
<ul>
<li><a href='index.php'>Home</a></li>
<li><a href='portfolio.php'>Portfolio</a></li>
<li><a href='pitches.php'>Pitches</a></li>
<li><a href='tarieven.php'>Tarieven</a></li>
<li><a href='overmij.php'>Over mij</a></li>
<li><a href='contact.php'>Contact</a></li>
</ul>
</div>
<div class="top_button">
<?php echo '<p>'.$button_name.'</p>' ?>
</div>
</div>
Op alle subpagina's begin ik vervolgens met de volgende code, waardoor de navigatie in alle pagina's terecht komt uit header.php:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
session_start();
$title = "Contact | ";
$keywords = "zoekwoorden";
$description = "omschrijving";
$button_name = "button naam";
?>
<?php include('header.php'); ?>
session_start();
$title = "Contact | ";
$keywords = "zoekwoorden";
$description = "omschrijving";
$button_name = "button naam";
?>
<?php include('header.php'); ?>
Alles wat daaronder komt, is content geschreven in html5.
Alle quote tags hernoemd naar code tags[/modedit]
Gewijzigd op 17/12/2013 18:11:15 door Wouter J
Gewijzigd op 17/12/2013 16:17:07 door Albert de Wit
Sorry, bij deze aangepast
index.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
// we lezen de pagina in de URL, in de vorm bv. "index.php?p=portfolio"
$page = isset($_GET['p']) ? $_GET['p'] : ''; // zie "ternary operator". Een verkorte if/then/else.
switch ($page) {
default:
case 'index':
$include = 'home'; // zeker niet een pagina index.php laden als HOME. index.php zorgt voor de navigatie. Niet voor de HOME pagina
break;
case 'portfolio':
case 'pitches':
case 'tarieven':
case 'overmij':
case 'contact':
$include = $_GET['p']; // merk op: enken de waarden die je hier specifieert, worden in rekening gebracht.
break;
}
?>
<!doctype html>
<html>
<head>
...
</head>
<body>
<?php include 'header.php' ?>
<ul>
<li><a href='?p=home'>Home</a></li>
<li><a href='?p=portfolio'>Portfolio</a></li>
<li><a href='?p=pitches'>Pitches</a></li>
<li><a href='?p=tarieven'>Tarieven</a></li>
<li><a href='?p=overmij'>Over mij</a></li>
<li><a href='?p=contact'>Contact</a></li>
</ul>
<div id="content">
<?php include $include . '.php' ?>
</div>
<?php include 'footer.php' ?>
</body>
</html>
// we lezen de pagina in de URL, in de vorm bv. "index.php?p=portfolio"
$page = isset($_GET['p']) ? $_GET['p'] : ''; // zie "ternary operator". Een verkorte if/then/else.
switch ($page) {
default:
case 'index':
$include = 'home'; // zeker niet een pagina index.php laden als HOME. index.php zorgt voor de navigatie. Niet voor de HOME pagina
break;
case 'portfolio':
case 'pitches':
case 'tarieven':
case 'overmij':
case 'contact':
$include = $_GET['p']; // merk op: enken de waarden die je hier specifieert, worden in rekening gebracht.
break;
}
?>
<!doctype html>
<html>
<head>
...
</head>
<body>
<?php include 'header.php' ?>
<ul>
<li><a href='?p=home'>Home</a></li>
<li><a href='?p=portfolio'>Portfolio</a></li>
<li><a href='?p=pitches'>Pitches</a></li>
<li><a href='?p=tarieven'>Tarieven</a></li>
<li><a href='?p=overmij'>Over mij</a></li>
<li><a href='?p=contact'>Contact</a></li>
</ul>
<div id="content">
<?php include $include . '.php' ?>
</div>
<?php include 'footer.php' ?>
</body>
</html>
Merk dus op: index.php is niet de HOME pagina !!!
De Home pagina moet je steken in home.php
index.php zorgt voor de werking van de site
Thanks voor je reactie. Het is niet zozeer antwoord op mijn vraag, maar wel een zeer nuttige tip! Ik zie dat jij 'm omdraait. Dus de omgeving (header.php, footer.php) laad je niet in op de pagina, maar de pagina in de omgeving.
Ik heb dat direct omgezet, maar nu werkt het scriptje om per pagina de title, keywords en description te bepalen niet meer. Heb je hier een oplossing voor?
Verder ben ik er nog altijd niet uit hoe ik op die button rechtsboven per pagina een variabele URL kan plaatsen. Het idee is:
- op de pagina portfolio.php moet in dat blauwe vlak rechtsboven de tekst 'contact' staan met als url 'contact.php'
- op de pagina contact.php wil ik daar als tekst 'portfolio' hebben staan en dus een url naar portfolio.php.
Het gaat dus niet om de navigatiebalk, maar het blauwe vierkante vlak. Zie hier de testomgeving, dan kunnen jullie ook zien hoe het nu in elkaar steekt: http://test.prsocial.nl/
Thanks voor het meedenken allen!
Peter van Remmen op 17/12/2013 18:07:54:
Ik heb dat direct omgezet, maar nu werkt het scriptje om per pagina de title, keywords en description te bepalen niet meer. Heb je hier een oplossing voor?
Op index.php blijf je dus beginnen met
Deze gegevens: okay, nu zijn er een aantal mogelijkheden.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$title = "Contact | ";
$keywords = "zoekwoorden";
$description = "omschrijving";
$button_name = "button naam";
?>
$title = "Contact | ";
$keywords = "zoekwoorden";
$description = "omschrijving";
$button_name = "button naam";
?>
Je kan die gegevens eventueel in de switch steken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
switch ($page) {
default:
case 'index':
$include = 'home';
$title = "Welkom | ";
$keywords = "zoekwoorden";
$description = "omschrijving";
$button_name = "button naam";
break;
case 'portfolio':
$include = 'portfolio';
$title = "Portfolio | ";
...
$button_name = "button naam";
break;
case 'pitches':
$include = 'pitches';
$title = "Pitches| ";
...
$button_name = "button naam";
break;
...
}
?>
switch ($page) {
default:
case 'index':
$include = 'home';
$title = "Welkom | ";
$keywords = "zoekwoorden";
$description = "omschrijving";
$button_name = "button naam";
break;
case 'portfolio':
$include = 'portfolio';
$title = "Portfolio | ";
...
$button_name = "button naam";
break;
case 'pitches':
$include = 'pitches';
$title = "Pitches| ";
...
$button_name = "button naam";
break;
...
}
?>
Het punt is: volg de volgorde.
De gegevens kunnen maar gebruikt worden als de code al is uitgevoerd.
Je kan dus ook variabelen een waarde geven in portfolio.php. Maar in index.php kan je die variabele pas gebruiken nadat include('portfolio.php') is uitgevoerd. ... en dat is dus inderdaad een probleem voor de titel van de pagina.
Is er nu ook een script te implementeren die zegt:
Code (php)
1
2
2
Als $button_name = 'contact' url = 'index.php?p=contact'
Als $button_name = 'portfolio' url = 'index.php?p=portfolio'
Als $button_name = 'portfolio' url = 'index.php?p=portfolio'
Oftewel: Kan aan de waarde $button_name een url gekoppeld worden?
Gewijzigd op 17/12/2013 19:48:19 door Peter van Remmen
Mag ik vragen hoe/waar jij je PHP kennis opdoet?
PS: Ik weet dat de code in mijn laatste post totale onzin is, maar daar staat wel letterliijk wat ik wil bereiken. In 'noob-taal' uitgelegd om het zo maar te zeggen. Of is het niet duidelijk wat ik wil bereiken Bart?
Peter van Remmen op 17/12/2013 22:43:05:
Voornamelijk tutorials op Youtube. Daar heb ik ook in eerste instantie de site-opbouw vandaan, die door te praten op dit forum totaal anders en bovendien makkelijker gescript is. Blijkbaar zijn er vele wegen die naar Rome leiden, want het resultaat is hetzelfde.
PS: Ik weet dat de code in mijn laatste post totale onzin is, maar daar staat wel letterliijk wat ik wil bereiken. In 'noob-taal' uitgelegd om het zo maar te zeggen. Of is het niet duidelijk wat ik wil bereiken Bart?
PS: Ik weet dat de code in mijn laatste post totale onzin is, maar daar staat wel letterliijk wat ik wil bereiken. In 'noob-taal' uitgelegd om het zo maar te zeggen. Of is het niet duidelijk wat ik wil bereiken Bart?
Het was meer een vraag voor mezelf. Ik doe dit jaar eind examen en wil daarna ook echt eens PHP gaan leren. En daarbij komt dat ik HTML & CSS ook nog niet helemaal goed ken. Daarom vroeg ik me af hoe jij bij de kennis komt.
Ik kan je dus niet helpen met jouw probleem sorry.
Code (php)
1
2
2
Als $button_name = 'contact' url = 'index.php?p=contact'
Als $button_name = 'portfolio' url = 'index.php?p=portfolio'
Als $button_name = 'portfolio' url = 'index.php?p=portfolio'
Is simpelweg:
Gewijzigd op 18/12/2013 13:03:58 door Tim van Norde
http://www.phpboek.net/
Thanks Tim! Iedereen bedankt voor de hulp, ik kan zo weer een stap verder :-)
Topic mag gesloten worden
@Bart: Oké, neem hier ook eens een kijkje: Thanks Tim! Iedereen bedankt voor de hulp, ik kan zo weer een stap verder :-)
Topic mag gesloten worden