Mijn vraag
Hoe kan ik ook alweer de variabelen formuleren die ik in combinatie van een $_GET[...] en een IF-statement kan gebruiken?
Omdat ik een echte beginner ben wat betreft PHP, zitten er wel flarden van code in mijn hoofd, maar zonder onderlinge relatie.
Ik wil de uiteindelijke code zelf kunnen schrijven, maar enige uitleg en wat handvatten bij mijn probleem zijn zeer welkom.
Relevante software en hardware die ik gebruik
notepad++, xampp
Wat ik al gevonden of geprobeerd heb
Het blijkt wel dat ik echt nog maar weinig weet heb van PHP. Toch heb ik dat nodig om te bereiken wat ik met mijn foto's wil doen.
Oorspronkelijk had ik één grote array met 20 foto's. Nu wil ik dat ze met 4 of 5 naast elkaar komen te staan. Bovendien moet je kunnen kiezen of je alleen de eerste rij foto's ziet (4/5 foto's naast elkaar) of juist 2 rijen of 3 rijen, etc. Tot maximaal 4 of 5 rijen onder elkaar dus.
Nu heb ik 5 kleinere arrays gemaakt en als ik ze na elkaar uitlees komen er i.c.m. CSS vijf rijen van vier foto's onder elkaar.
Dit staat in CSS:
Het bestand van de eigenlijke webpagina bevat deze 'include'-instructie:
En zo heb ik het PHP-bestand geformuleerd:
Maar dat wil ik zo niet laten. Bij een webshop heb ik wel eens gezien dat je meer produkten kunt opvragen. Zoiets wil ik ook voor mijn foto's maken. In plaats van alle 20 foto's tegelijkertijd te tonen, wil ik het aantal zichtbare foto's zelf kunnen kiezen. En in de adresbalk komt dan iets te staan als:
http://localhost/album.php?aantal=9
En als ik dan 'aantal=9' verander in 'aantal=5' dan zou ik bijvoorbeeld maar 5 foto's moeten zien.
Omdat ik een echte beginner ben wat betreft PHP, zitten er wel flarden van code in mijn hoofd, maar zonder onderlinge relatie. Mijn aanpak vraagt daarom om enige correctie.
Ik denk dat ik moet beginnen met het formuleren van een variabele zonder inhoud met daaronder een controle:
Ergens (maar waar???) moet er ook een link geplaatst worden met een verwijzing naar de adresbalk:
En wat zou er dan op de plek van de puntjes moeten staan?
Wat ik niet goed kan snappen is op welke manier de adresbalk "weet"
1. dat er foto's op de pagina aanwezig zijn en vooral
2. wat het aantal foto's is dat getoond wordt.
Ik zou namelijk iets met een IF-statement willen doen waarin bijvoorbeeld het volgende voorkomt:
Maar ik wil graag uitgelegd krijgen hoe ik dat moet combineren met de individuele foto's. Bestaat er misschien zoiets als een optelmechanisme waarmee je het aantal te tonen foto's kunt beïnvloeden?
Wellicht ben ik wel helemaal verkeerd begonnen en is dat de reden dat ik hier niet uitkom. Moet ik eventueel gebruik maken van een multidimensionale array?
Waar en hoe moet ik het PHP-bestand en de array aanpassen om het beoogde trucje te realiseren? Wie is zo vriendelijk om wat meer begrijpelijke uitleg te geven? Alvast bedankt.
Hoe kan ik ook alweer de variabelen formuleren die ik in combinatie van een $_GET[...] en een IF-statement kan gebruiken?
Omdat ik een echte beginner ben wat betreft PHP, zitten er wel flarden van code in mijn hoofd, maar zonder onderlinge relatie.
Ik wil de uiteindelijke code zelf kunnen schrijven, maar enige uitleg en wat handvatten bij mijn probleem zijn zeer welkom.
Relevante software en hardware die ik gebruik
notepad++, xampp
Wat ik al gevonden of geprobeerd heb
Het blijkt wel dat ik echt nog maar weinig weet heb van PHP. Toch heb ik dat nodig om te bereiken wat ik met mijn foto's wil doen.
Oorspronkelijk had ik één grote array met 20 foto's. Nu wil ik dat ze met 4 of 5 naast elkaar komen te staan. Bovendien moet je kunnen kiezen of je alleen de eerste rij foto's ziet (4/5 foto's naast elkaar) of juist 2 rijen of 3 rijen, etc. Tot maximaal 4 of 5 rijen onder elkaar dus.
Nu heb ik 5 kleinere arrays gemaakt en als ik ze na elkaar uitlees komen er i.c.m. CSS vijf rijen van vier foto's onder elkaar.
Dit staat in CSS:
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #container{ margin: 0 auto; width: 900px; background-color: #ffffff; } ul { list-style-type: none; display: flex; margin-top: 0; padding-left: 20px; } ul li img { margin-right: 20px; } |
Het bestand van de eigenlijke webpagina bevat deze 'include'-instructie:
HTML:
1
2
3
| <div id="container"> <?php include('photos.php'); ?> </div> |
En zo heb ik het PHP-bestand geformuleerd:
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
40
41
| <?php $rij1 = array('<img src="img/photo1.jpg">', '<img src="img/photo2.jpg">', '<img src="img/photo3.jpg">', '<img src="img/photo4.jpg">'); $rij2 = array('<img src="img/photo5.jpg">', '<img src="img/photo6.jpg">', '<img src="img/photo7.jpg">', '<img src="img/photo8.jpg">'); $rij3 = array('<img src="img/photo9.jpg">', '<img src="img/photo10.jpg">', '<img src="img/photo11.jpg">', '<img src="img/photo12.jpg">'); $rij4 = array('<img src="img/photo13.jpg">', '<img src="img/photo14.jpg">', '<img src="img/photo15.jpg">', '<img src="img/photo16.jpg">'); $rij5 = array('<img src="img/photo17.jpg">', '<img src="img/photo18.jpg">', '<img src="img/photo19.jpg">', '<img src="img/photo20.jpg">'); echo '<ul>'; foreach ($rij1 as $value){ echo '<li>'.$value.'</li><br>'; } echo '</ul>'; echo '<ul>'; foreach ($rij2 as $value){ echo '<li>'.$value.'</li><br>'; } echo '</ul>'; echo '<ul>'; foreach ($rij3 as $value){ echo '<li>'.$value.'</li><br>'; } echo '</ul>'; echo '<ul>'; foreach ($rij4 as $value){ echo '<li>'.$value.'</li><br>'; } echo '</ul>'; echo '<ul>'; foreach ($rij5 as $value){ echo '<li>'.$value.'</li><br>'; } echo '</ul>'; ?> |
Maar dat wil ik zo niet laten. Bij een webshop heb ik wel eens gezien dat je meer produkten kunt opvragen. Zoiets wil ik ook voor mijn foto's maken. In plaats van alle 20 foto's tegelijkertijd te tonen, wil ik het aantal zichtbare foto's zelf kunnen kiezen. En in de adresbalk komt dan iets te staan als:
http://localhost/album.php?aantal=9
En als ik dan 'aantal=9' verander in 'aantal=5' dan zou ik bijvoorbeeld maar 5 foto's moeten zien.
Omdat ik een echte beginner ben wat betreft PHP, zitten er wel flarden van code in mijn hoofd, maar zonder onderlinge relatie. Mijn aanpak vraagt daarom om enige correctie.
Ik denk dat ik moet beginnen met het formuleren van een variabele zonder inhoud met daaronder een controle:
PHP:
1
2
3
4
5
6
| <?php $aantal = ' '; if(isset($_GET['aantal'])){ $aantal = $_GET['aantal']; } ?> |
Ergens (maar waar???) moet er ook een link geplaatst worden met een verwijzing naar de adresbalk:
HTML:
1
| <a href="http://localhost/album.php?aantal=...">...</a> |
En wat zou er dan op de plek van de puntjes moeten staan?
Wat ik niet goed kan snappen is op welke manier de adresbalk "weet"
1. dat er foto's op de pagina aanwezig zijn en vooral
2. wat het aantal foto's is dat getoond wordt.
Ik zou namelijk iets met een IF-statement willen doen waarin bijvoorbeeld het volgende voorkomt:
PHP:
1
2
3
4
5
| if($aantal == '...'){ echo '...'; } elseif($aantal == '...'){ echo '...'; } etc. |
Maar ik wil graag uitgelegd krijgen hoe ik dat moet combineren met de individuele foto's. Bestaat er misschien zoiets als een optelmechanisme waarmee je het aantal te tonen foto's kunt beïnvloeden?
Wellicht ben ik wel helemaal verkeerd begonnen en is dat de reden dat ik hier niet uitkom. Moet ik eventueel gebruik maken van een multidimensionale array?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <?php $photos = array( array('href' => 'localhost/album.php', 'content' => '<img src="img/photo1.jpg">'), array('href' => 'localhost/album.php', 'content' => '<img src="img/photo2.jpg">'), array('href' => 'localhost/album.php', 'content' => '<img src="img/photo3.jpg">'), array('href' => 'localhost/album.php', 'content' => '<img src="img/photo4.jpg">'), //etc. ); echo '<ul>'; foreach ($photos as $key => $value){ foreach ($value as $key2 => $value2){ echo '<li>'.$value2.'</li><br>'; } } echo '</ul>'; ?> |
Waar en hoe moet ik het PHP-bestand en de array aanpassen om het beoogde trucje te realiseren? Wie is zo vriendelijk om wat meer begrijpelijke uitleg te geven? Alvast bedankt.
[ Voor 0% gewijzigd door .oisyn op 23-10-2017 10:43 ]