Kan een CSS attribute gebruikt worden als <input value met PHP?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert deBeer

Robert deBeer

28/10/2020 21:57:41
Quote Anchor link
Middels PHP haal ik enkele waarden uit een database ( tinyints aka booleans). Op een pagina is een aan/uit schuifschakelaar opgebouwd met CSS. Hierbij wordt gebruik gemaakt van de data attribute om dit te visualiseren. Dit gaat prima voor het weergeven van de huidige status. Echter als ik de schuifschakelaar bedien en de data save krijg ik op die lokatie NULL in de database, geen 1 en geen 0. Hoe krijg ik na het bedienen vd schakelaar wel de juiste waarde in mn database? Kan dat eigenlijk wel op deze manier?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class="column3" style="text-align: left;">
  <div>For rent:</div>
  <label class="switch">
    <input class="switch-input" type="checkbox" id="forRent" name="forRent"
      <?php
        if($recource['forRent'] == 1){
          print 'checked value = 1';
        }
else {
          print 'value = 0';
        }

      ?>

    />
    <span class="switch-label" data-on="On" data-off="Off"></span>
    <span class="switch-handle"></span>
  </label>
</div>


Het woord recource is bewust fout geschreven.
Ik dacht dat op deze manier bij het saven vd gegevens de value van 1 of 0 de database ingeschoten werd en niet NULL wat nu het geval is.
Gewijzigd op 28/10/2020 22:02:56 door Robert deBeer
 
PHP hulp

PHP hulp

28/11/2024 22:36:47
 
Adoptive Solution

Adoptive Solution

28/10/2020 22:44:15
Quote Anchor link
Met een POST is een checkbox = on als ie aangevinkt is.

Voorbeeld :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?php
echo '<pre>' . print_r( $_POST, TRUE) . '</pre>';
echo '<p>Waarde voor database = <b>' . ( $_POST['switch'] !== null ? '1' : '0' ) . '</b></p>';
?>


<style>
.switch {
    position: relative;
    display: block;
    vertical-align: top;
    width: 100px;
    height: 30px;
    padding: 3px;
    margin: 0 10px 10px 0;
    background: linear-gradient(to bottom, #eeeeee, #FFFFFF 25px);
    background-image: -webkit-linear-gradient(top, #eeeeee, #FFFFFF 25px);
    border-radius: 18px;
    box-shadow: inset 0 -1px white, inset 0 1px 1px rgba(0, 0, 0, 0.05);
    cursor: pointer;
    box-sizing:content-box;
}
.switch-input {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    box-sizing:content-box;
}
.switch-label {
    position: relative;
    display: block;
    height: inherit;
    font-size: 10px;
    text-transform: uppercase;
    background: #eceeef;
    border-radius: inherit;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12), inset 0 0 2px rgba(0, 0, 0, 0.15);
    box-sizing:content-box;
}
.switch-label:before, .switch-label:after {
    position: absolute;
    top: 50%;
    margin-top: -.5em;
    line-height: 1;
    -webkit-transition: inherit;
    -moz-transition: inherit;
    -o-transition: inherit;
    transition: inherit;
    box-sizing:content-box;
}
.switch-label:before {
    content: attr(data-off);
    right: 11px;
    color: #aaaaaa;
    text-shadow: 0 1px rgba(255, 255, 255, 0.5);
}
.switch-label:after {
    content: attr(data-on);
    left: 11px;
    color: #FFFFFF;
    text-shadow: 0 1px rgba(0, 0, 0, 0.2);
    opacity: 0;
}
.switch-input:checked ~ .switch-label {
    background: #E1B42B;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15), inset 0 0 3px rgba(0, 0, 0, 0.2);
}
.switch-input:checked ~ .switch-label:before {
    opacity: 0;
}
.switch-input:checked ~ .switch-label:after {
    opacity: 1;
}
.switch-handle {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 28px;
    height: 28px;
    background: linear-gradient(to bottom, #FFFFFF 40%, #f0f0f0);
    background-image: -webkit-linear-gradient(top, #FFFFFF 40%, #f0f0f0);
    border-radius: 100%;
    box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
}
.switch-handle:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -6px 0 0 -6px;
    width: 12px;
    height: 12px;
    background: linear-gradient(to bottom, #eeeeee, #FFFFFF);
    background-image: -webkit-linear-gradient(top, #eeeeee, #FFFFFF);
    border-radius: 6px;
    box-shadow: inset 0 1px rgba(0, 0, 0, 0.02);
}
.switch-input:checked ~ .switch-handle {
    left: 74px;
    box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.2);
}
 
/* Transition
========================== */
.switch-label, .switch-handle {
    transition: All 0.3s ease;
    -webkit-transition: All 0.3s ease;
    -moz-transition: All 0.3s ease;
    -o-transition: All 0.3s ease;
}
</style>

<form method="POST">


<label class="switch">
    <input class="switch-input" name="switch" type="checkbox" <?php echo ( $_POST['switch'] !== null ? 'checked' : '' ); ?> />
    <span class="switch-label" data-on="On" data-off="Off"></span>
    <span class="switch-handle"></span>
</label>

<input type="submit" name="submit" value="Submit" />

</form>

<p><a href="https://www.htmllion.com/css3-toggle-switch-button.html">https://www.htmllion.com/css3-toggle-switch-button.html</a></p>
 
Robert deBeer

Robert deBeer

28/10/2020 23:05:16
Quote Anchor link
Klopt daar had ik de knop en code gevonden :). Ik heb alleen meerdere aan/uit knoppen op èèn pagina dus vrees dat deze oplossing niet lekker werkt. Ik heb ook zitten stoeien om de status met javascript af te vangen, zoiets als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var forRent = document.getElementsByName("forRent")[0].checked ? 1 : 0;


die dan na de submit button, naar de volgende php pagina gestuurd wordt die de update vd database uitvoerd.
Maar daarmee kom ik ook niet echt niet verder.

In ieder geval dank voor de snelle reaktie.
 
Thomas van den Heuvel

Thomas van den Heuvel

29/10/2020 01:04:58
Quote Anchor link
Een niet gecheckte checkbox wordt in het geheel niet gePOST. Je zou uit de afwezigheid van de $_POST-variabele kunnen concluderen dat deze niet aangevinkt was maar misschien is het toch beter om expliciet waarden in te stellen en door te geven.

Als je in plaats van standaard HTML formulier-elementen (radiobuttons, checkboxen etc.) allemaal grafische elementen gebruikt, waarom maak je dan geen gebruik van hidden elementen die hier aan gekoppeld zijn die een 0 krijgen wanneer je een (grafisch) schakelaar(-element) uitzet, en 1 wanneer deze aangezet worden? De brug tussen dit soort grafische elementen en de data die onder water wordt verstuurd kan via JavaScript worden geslagen.

Het is prima mogelijk om meer van dit soort grafische schakelaar-elementen te hebben in eenzelfde formulier, maar dan is het dus wel zaak dat je deze onderling kunt onderscheiden, dus deze zullen een unieke waarde moeten hebben in het name-attribuut.

Het voorstel van @Adoptive hierboven controleert niet op het bestaan van $_POST['switch'], dus dat levert je meteen een zwik notices op. Ook zal dit voorbeeld aangepast moeten worden om dit op te schalen naar een uitvoering met meerdere schakelaars als je daar naar op zoek bent.

Daarbij weet ik ook niet of je dit soort logica in CSS zou moeten onderbrengen, het maakt de werking nogal ondoorzichtig.

Ook is het waarschijnlijk niet de bedoeling dat je een pagina weergeeft tijdens een POST-actie (het weergeven van een HTML-pagina en het verwerken van een POST zou in twee aparte acties ondergebracht moeten worden), maar ik neem aan dat dat voorbeeld hier bedoeld was ter illustratie, en niet als aanbeveling dient om ook zo letterlijk je webpagina's in elkaar te zetten. Na het POSTen van data zou je de pagina voor de goede orde moeten verversen.
Gewijzigd op 29/10/2020 01:05:26 door Thomas van den Heuvel
 
Robert deBeer

Robert deBeer

29/10/2020 21:33:19
Quote Anchor link
@Thomas, het klopt dat dit een illustratie is van hoe e.e.a. zou kunnen want op het moment dat een "off" situatie geselecteerd wordt geeft dat een NULL in de database omdat zoals je al zegt $_POST bij afwezigheid ve variabele de fout ingaat, althans bij mij :).
Zoals gezegd, de huidige situatie in de database is gemakkelijk weer te geven op een pagina, maar om de tinyint ofwel boolean te wijzigen op een "leuke" manier is een andere. Natuurlijk kan ik gewoon gebruik maken van een radio button of checkbox. Dat is eenvoudig. Maar om het wat op te leuken was ik op zoek naar een andere manier en vond die van htmllion en dat zag er wel sleek uit. Wat ik begrepen heb is dat je middels "name=" onderscheid kunt maken tussen de onderlinge schakelaars. Nu is het dus zaak voor mij om uit te zoeken hoe ik die status af kan vangen om de database te updaten.
Bij een "on" situatie heb ik geen foutmeldingen en werkt de pagina naar behoren
Bij een "off" situatie krijg ik meldingen met undefined index blablabla en mis ik een variabele.
Dus bij "on" heb ik de variabelen submit en switch en bij "off" heb ik alleen submit..
Hoe kan ik die laatste afvangen en gebruiken.
Btw andere/betere oplossingen zijn welkom :)
 
Adoptive Solution

Adoptive Solution

29/10/2020 21:57:13
Quote Anchor link
Als je bij de input van de checkbox value='1' gebruikt, zal je bij een POST niet on maar 1 krijgen.

Verder versieren, uitbreiden en aanpassen naar smaak.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<style>

.switch {
    position: relative;
    display: block;
    vertical-align: top;
    width: 100px;
    height: 30px;
    padding: 3px;
    margin: 0 10px 10px 0;
    background: linear-gradient(to bottom, #eeeeee, #FFFFFF 25px);
    background-image: -webkit-linear-gradient(top, #eeeeee, #FFFFFF 25px);
    border-radius: 18px;
    box-shadow: inset 0 -1px white, inset 0 1px 1px rgba(0, 0, 0, 0.05);
    cursor: pointer;
    box-sizing:content-box;
}
.switch-input {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    box-sizing:content-box;
}
.switch-label {
    position: relative;
    display: block;
    height: inherit;
    font-size: 10px;
    text-transform: uppercase;
    background: #eceeef;
    border-radius: inherit;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12), inset 0 0 2px rgba(0, 0, 0, 0.15);
    box-sizing:content-box;
}
.switch-label:before, .switch-label:after {
    position: absolute;
    top: 50%;
    margin-top: -.5em;
    line-height: 1;
    -webkit-transition: inherit;
    -moz-transition: inherit;
    -o-transition: inherit;
    transition: inherit;
    box-sizing:content-box;
}
.switch-label:before {
    content: attr(data-off);
    right: 11px;
    color: #aaaaaa;
    text-shadow: 0 1px rgba(255, 255, 255, 0.5);
}
.switch-label:after {
    content: attr(data-on);
    left: 11px;
    color: #FFFFFF;
    text-shadow: 0 1px rgba(0, 0, 0, 0.2);
    opacity: 0;
}
.switch-input:checked ~ .switch-label {
    background: #E1B42B;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15), inset 0 0 3px rgba(0, 0, 0, 0.2);
}
.switch-input:checked ~ .switch-label:before {
    opacity: 0;
}
.switch-input:checked ~ .switch-label:after {
    opacity: 1;
}
.switch-handle {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 28px;
    height: 28px;
    background: linear-gradient(to bottom, #FFFFFF 40%, #f0f0f0);
    background-image: -webkit-linear-gradient(top, #FFFFFF 40%, #f0f0f0);
    border-radius: 100%;
    box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
}
.switch-handle:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -6px 0 0 -6px;
    width: 12px;
    height: 12px;
    background: linear-gradient(to bottom, #eeeeee, #FFFFFF);
    background-image: -webkit-linear-gradient(top, #eeeeee, #FFFFFF);
    border-radius: 6px;
    box-shadow: inset 0 1px rgba(0, 0, 0, 0.02);
}
.switch-input:checked ~ .switch-handle {
    left: 74px;
    box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.2);
}
 
/* Transition
========================== */
.switch-label, .switch-handle {
    transition: All 0.3s ease;
    -webkit-transition: All 0.3s ease;
    -moz-transition: All 0.3s ease;
    -o-transition: All 0.3s ease;
}

input[type=submit] {
  width: 10.000em;
  padding: 12px 20px;
  margin: 1.000em 0.000em;
  box-sizing: border-box;
  font-size: 150%;
}
</style>

<div style="height: 360px; padding: 0.500em;">
<?php
echo '<pre>' . print_r( $_POST, TRUE) . '</pre>';

for ( $i = 1; $i <= 2; $i++ )
{

    echo '<p>isset <i>forRent' . $i . '</i>' . ( isset($_POST['forRent' . $i]) ? ' bestaat ' : ' bestaat niet ' ) . '<br />';
    echo 'Waarde voor database <i>forRent' . $i . '</i> = <b>' . ( $_POST['forRent' . $i] ?? 0 ) . '</b></p>';
}

// https://stitcher.io/blog/shorthand-comparisons-in-php#null-coalescing-operator
echo '<p>isset <i>forRent9</i> ' . ( isset($_POST['forRent9']) ? ' bestaat ' : ' bestaat niet ' ) . '<br />';
echo 'Waarde voor database <i>forRent9</i> = <b>' . ( $_POST['forRent9'] ?? '0' ) . '</b></p>';
?>

    </div>

    <hr style="margin-top:1.000em"/>

    <form method="POST">
    <?php
    for ( $i = 1; $i <= 2; $i++ )
    {

    ?>

    ForRent <?php echo $i; ?>
    <label class="switch">
        <input class="switch-input" name="forRent<?php echo $i; ?>" value="1" type="checkbox" <?php echo ( $_POST['forRent'. $i] !== null ? 'checked' : '' ); ?> />
        <span class="switch-label" data-on="On" data-off="Off"></span>
        <span class="switch-handle"></span>
    </label>
    <?php
    }
    ?>

    <br /><br />
    <label for="forRent9">forRent9</label> <input id="forRent9" type="checkbox" name="forRent9" value="1" <?php echo ( $_POST['forRent9'] !== null ? 'checked' : '' ); ?> /> <br /><br />

    <input type="submit" name="submit" value="Submit" />

    </form>

    <p><a href="https://www.htmllion.com/css3-toggle-switch-button.html">https://www.htmllion.com/css3-toggle-switch-button.html</a></p>
 
Robert deBeer

Robert deBeer

29/10/2020 22:25:27
Quote Anchor link
Hartelijk dank voor de snelle reaktie.

Een 1 of 0 volstaat in de database, on en off staan alleen maar in de knoppen geschreven, dus visueel op de pagina.

Ik begrijp ondertussen de werking van coalescing operators na het lezen van de informatie op stitcher.io/blog, erg verhelderend, bedankt!

Helaas gebruik ik PHP 5.6.30 middels EasyPHP en maak ik gebruik van een Sqlite database. Volgens mij krijg ik daardoor de foutmelding: "Parse error: syntax error, unexpected '?' in D:\Data\..." dat de unexpected ? voor coalescing operator onbekend is. Dit werkt pas vanaf PHP versie 7.0 ?
 
- Ariën  -
Beheerder

- Ariën -

29/10/2020 22:55:38
Quote Anchor link
Ik zou toch aanraden om naar PHP 7.4 te updaten. De laatste ondersteuning voor PHP 5.6 is al op 1 januari 2019 verlopen, en veel web-softwarepakketten ondersteunen PHP 5.6 al niet eens meer.

Maar het equivalent is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_POST
['forRent9'] = isset($_POST['forRent9']) ? $_POST['forRent9'] : '0';
?>

Het heeft niks met SQL-lite te maken.
Gewijzigd op 29/10/2020 22:58:57 door - Ariën -
 
Robert deBeer

Robert deBeer

30/10/2020 16:11:02
Quote Anchor link
Ok dus ik loop flink achter met de PHP versies.
Eens zien of ik die kan upgraden in EasyPHP of adviseren jullie een ander omgeving?
 
Thomas van den Heuvel

Thomas van den Heuvel

30/10/2020 16:28:05
Quote Anchor link
Gelukkig ondersteunen formulier(veldnam)en ook arrays, dus kun je alle knoppen/schakelaars bundelen onder één $_POST variabele zodat $_POST wat overzichtelijker blijft en je hier ook makkelijker doorheen kunt lopen met loops waarbij je niet afhankelijk bent van "magische constanten" (in het bovenstaande voorbeeld: de waarde "2" voor het aantal schakelaars).

Dit doe je door [ rechte haken ] toe te voegen achter de veldnaam. Tussen deze rechte haken zou je een index van het corresponderende schakelaar-record kunnen gebruiken, of een omschrijvende naam.

Het op de bovenstaande manier aan elkaar breien van veldnamen zou ik niet doen, tenzij dit niet anders kan.

In die variant zul je de code misschien ook inhoudelijk moeten aanpassen op het moment dat er een schakelaar bijkomt, terwijl een aanpak met arrays ervoor zorgt dat als er een corresponderend schakelaar-record is, en het rijtje schakelaars vanuit de database wordt opgebouwd, dat de code automatisch, en zonder aanpassing, direct de nieuwe situatie reflecteert.

Ik snap dat dit wat verder voert dan een simpel voorbeeld, maar in een voorbeeld kun je prima de basis leggen voor het verdere ontwerp, die bij voorkeur schaalbaar is voor toekomstige uitbreidingen waarbij geen nieuwe ingrepen in code nodig zijn.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
42
43
44
45
46
47
<?php
// voor ontwikkeling en debugging
error_reporting(E_ALL);
ini_set('display_startup_errors', true);
ini_set('display_errors', 'stdout');

function
escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}

function
dump($in) {
    if (is_array($in)) {
        $in = print_r($in, true);
    }

    echo '<pre>'.escape($in).'</pre>';
}


// alle schakelaars
$myButtons = [5 => 'kelder', 1 => 'woonkamer', 2 => 'zolder', 6 => 'iets met spaties']; // variant met indices

header('Content-Type: text/html; charset=UTF-8');
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>buttons</title>
</head>

<body>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST"><?php
    foreach ($myButtons as $index => $name) {
        $checked = (empty($_POST['buttons'][$index]) ? '' : ' checked="checked"');
        ?>
<label><input type="checkbox" name="buttons[<?php echo $index; ?>]" value="1"<?php echo $checked; ?>><?php echo $name; ?></label><br><?php
    }
    ?>
<button type="submit">go</button>
</form><?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    dump($_POST);
    foreach ($myButtons as $index => $name) {
        if (empty($_POST['buttons'][$index])) {
            echo 'button ['.$name.'] was not checked<br>';
        }
    }
}

?>
</body>
</html>


EDIT: NB: het bovenstaande kun je dus toepassen op de uitvoering die grafisch mogelijk wat aantrekkelijker is, dit dient enkel om het principe te demonstreren. In het algemeen is het zo dat als iets structureel goed in elkaar zit, dat je hier laten nog wel een saus overheen kunt gooien en de werking in zekere zin los kunt koppelen van het grafische ontwerp.
Gewijzigd op 30/10/2020 16:32:25 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

30/10/2020 16:51:49
Quote Anchor link
Robert deBeer op 30/10/2020 16:11:02:
Ok dus ik loop flink achter met de PHP versies.
Eens zien of ik die kan upgraden in EasyPHP of adviseren jullie een ander omgeving?


Zo te zien heet EasyPHP tegenwoordig DevServer. Ik zie dat daar recent een PHP 7.4 versie voor uit gekomen is. Ik raad je aan om de oude data uit je werkmap (htdocs of iets dergelijk) te backuppen, en je databases netjes te exporteren. Bij voorkeur via de Windows commandoprompt (of via Linux/Mac als je die gebruikt).

Dan kan je de oude versie verwijderen, en de nieuwe installeren, en de database weer importeren.

Als je handigheid hebt, kan je ook gewoon de PHP-binairy van PHP.net in EasyPHP plaatsen, en de nodige dll'etjes vervangen. Maar dan moet je wel weten wat je moet doen. Voor een beginner, en ook omdat het een flinke upgrade is, raad ik een herinstallatie van de webserver aan.
Gewijzigd op 30/10/2020 16:53:46 door - Ariën -
 
Robert deBeer

Robert deBeer

30/10/2020 17:13:22
Quote Anchor link
Inmiddels ben ik ge upgrade naar PHP 7.1.4 zat gewoon onder de settings toets.. Ik ben wel handig maar dll'etjes veranderen, liever niet. Ik zal versie 7.4 even opsnorren en kijken of ik die geinstalleerd krijg, zou vlgns een tutorial in 8 stappen moeten lukken en binnen 10 minuten. Here we go!
Hartelijk dank aan Ariën en Thomas voor jullie input en tips.
 
- Ariën  -
Beheerder

- Ariën -

30/10/2020 18:51:45
Quote Anchor link
PHP 7.1.4 is ook end-of-life, nog wel bruikbaar, maar toch raad ik aan om je testomgeving ook up-2-date te houden.
 



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.