Met onderstaande code is het me als beginneling (na veel tips van anderen) toch gelukt om via de adresbalk het aantal zichtbare foto's op mijn webpagina te variëren.
<?php
$aantal = 2;
$photos = glob('img/*.jpg');
if (isset($_GET['aantal']))
{
$aantal = (int) $_GET['aantal'];
}
if (!is_int($aantal) || $aantal < 1 || $aantal > count($photos))
{
$aantal = count($photos);
}
for($getal = 1; $getal <= $aantal; $getal++)
{
echo '[ul]';
echo '[li][img src="img/photo' . $getal . '.jpg"][/li]';
echo '[/ul]';
}
?>
De code wordt middels een 'include('photos.php');' binnen een divje van de [main][/main] geplaatst.
In de adesbalk staat nu bijvoorbeeld:
localhost/album.php?aantal=5
En als ik in plaats van ?aantal=5 invul ?aantal=14, dan zie je niet 5 foto's, maar 14 foto's netjes geordend.
Nu wil ik mijn webpagina zowel Nederlandstalig als Franstalig hebben. Dus heb ik dit PHP-bestand bedacht.
<?php
$drapeaux = array
(
array
(
'href' => 'album.php?lang=fr',
'content' => '[img src="images_2/fr.png" title="français"]',
'target' => '_self',
'seq' => 1,
),
array
(
'href' => 'album.php?lang=nl',
'content' => '[img src="images_2/nl.png" title="Nederlands"]',
'target' => '_self',
'seq' => 2,
),
);
echo '<ul>';
foreach ($drapeaux as $key => $value)
{
$class = '';
if ($value['href'] == basename($_SERVER['REQUEST_URI']))
{
$class = 'visited';
}
echo '[li][a class="' .$class. '" href="' .$value['href']. '" target="' .$value['target']. '"]' .$value['content']. '[/a][/li]';
}
echo '[/ul]';
?>
Deze code wordt via 'require_once('drapeaux.php');' binnen de header opgeroepen.
Als ik op een vlaggetje klik, dan komt er in de adresbalk bijvoorbeeld te staan:
localhost/album.php?lang=nl
In de adresbalk rechtstreeks of via het andere vlaggetje kan ik er van maken:
localhost/album.php?lang=fr
In de CSS heb ik volledige opacity gegeven aan het actieve vlaggetje en beduidend verminderde opacity aan het vlaggetje dat even niet meedoet.
Ik weet nog niet hoe ik in mijn code ook kan aangeven dat je effectief naar bijvoorbeeld het volgende adres gaat:
localhost/album/fr.php?lang=fr
Een bestand met de naam 'album/fr.php' wordt als ongeldig gezien wegens het slash-teken.
Dus als iemand een tip heeft om de taalparameter ?lang=... ook echt te koppelen aan een anderstalige pagina... ???
Beide $_GET parameters functioneren apart gebruikt zoals verwacht. Maar als ik ze in de adresbalk combineer, worden de vlaggetjes allebei transparant, terwijl de taal-parameter nog wel in de adresbalk staat:
localhost/album.php?lang=fr&aantal=4
of
localhost/album.php?aantal=4&lang=fr
De volgorde maakt dus niet uit. Alleen de parameter voor het aantal foto's blijft correct het gekozen aantal foto's tonen.
Mijn vraag is nu: hoe kan ik de codes zo aanpassen, dat er geen conflict meer tussen de $_GET parameters blijft bestaan? En dat dus ook bij het actieve vlaggetje de transparantie wegblijft.
4.686 views