Kalender onload

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

IT-Traineeship junior software programmeur

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van ongeveer 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java/C#/Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Het opleidingstraject zelf sluit je af

Bekijk vacature »

.NET Developer Zorg-ICT

Complexe software ontwikkelen: dat is jouw ding! Voor onze vestiging in Heerenveen zoeken wij fanatieke junior en senior .NET Developers die met de laatste Microsoft-tools en -technieken willen werken. Jij bent gemotiveerd en draagt graag verantwoordelijkheid voor je 'eigen' software, die wordt ingezet in ziekenhuizen door heel Nederland. Jouw baan Je bent verantwoordelijk voor het ontwerpen, ontwikkelen, ondersteunen en onderhouden van jouw eigen module. Dit gaat om complexe ICT-producten die feilloos moeten functioneren binnen de complexe omgeving van een zorgorganisatie. Je werkt zelfstandig of in een klein team. ChipSoft maakt gebruik van een zelf ontwikkeld multi tier framework. Tijdens een

Bekijk vacature »

Web Developer (m/w/d)

Web Developer Location: Heidelberg, Germany Staff category: Staff Member Job type: IT and Infrastructure Contract duration: 3 years (renewable) Grading: 6, 7 or 8; depending on experience (monthly salary starting from 3.7k€ up to 4.8k€ after tax, plus other benefits) Closing date: 1 February 2021 Reference number: HD01905 IT Services operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. In collaboration with the EMBL-EBI in Cambridge our team is creating and implementing a new web infrastructure for all EMBL websites. We are looking to recruit an enthusiastic

Bekijk vacature »

SAP/CRM Developer SAPUI5 Overheid

Bedrijfsomschrijving De organisatie staat voor het leveren van een efficiënte en kwalitatief hoogwaardige salaris- en personeelsadministratie. Je gaat samenwerken met ICT-professionals met uiteenlopende kennis en achtergronden. Hou je van Agile samenwerken en kom je maximaal tot je recht in zelfsturende teams? Dan is dit de plaats waar jouw toekomst ligt. Voor deze functie zijn we op zoek naar een ervaren SAP CRM developer. De kerntaken bestaan uit het maken van een vertaling van de business behoefte naar passende SAP-oplossingen. Je bent daarbij enerzijds in staat om om te gaan met complexe vraagstukken en oplossingen te bedenken die bestaan uit kleine

Bekijk vacature »

ServiceNow developer

In our dynamic and digitalized world, a lot of companies switch to the ServiceNow platform for managing, not only their IT services but also their HR, customer, project or financial services. Accenture is a Global Elite partner of ServiceNow and is realizing transformational implementation projects at its clients in all possible domains and industries. Due to our significant growth we are looking for candidates to strengthen our highly diverse team. Your job As a ServiceNow Developer, you will build and automate workflows in ServiceNow and help our clients with implementation of new services and functionality in the platform. You will

Bekijk vacature »

Webdeveloper C# ASP.NET High Potentials

Bedrijfsomschrijving Dit leuke maar nog kleine bedrijf met tien medewerkers heeft een succesvol handelsplatform opgezet waarop mensen kunnen handelen in virtuele munten. Het is een nationaal succes en het platform wordt maandelijks aangevuld met nieuwe virtuele munten waarin gehandeld kan worden. Momenteel wordt er hard gewerkt aan vernieuwing van de website aangezien de traffic ongekende hoogtes bereikt. De website is ontzettend slim en moet daarnaast snel werken, veilig zijn en makkelijk in gebruik. Wij zoeken daarom dan een software webdeveloper van deze tijd, die interesse heeft in Cryptocurrency, Blockchain, Bitcoin, Hardforks en andere soortgelijke technieken! Functieomschrijving Als .NET developer kom

Bekijk vacature »

Fullstack .NET Ontwikkelaar

Bedrijfsomschrijving Onze klant is Europees leider op het gebied van software voor één specifieke markt. Hierbij houden zij rekening met de unieke eigenschappen van deze business, om de klant zo veel mogelijk te ondersteunen/ontzorgen. Het gaat om een kleine organisatie waar korte lijnen, ontwikkeling en initiatief centraal staan. Op dit moment zijn zij op zoek naar een Fullstack .NET ontwikkelaar welke zich gaat richten op het onderhoud van de huidige software, maar vooral ook op de volledige vernieuwing van het pakket. Dit laatste zal een traject van meerdere jaren zijn, gezien de complexiteit en de omvang van de software. Daarnaast

Bekijk vacature »

Senior naar Lead PHP developer

Bedrijfsomschrijving Deze mooie organisatie is gevestigd nabij het station en dus heel goed bereikbaar met het OV. Onze klant is de toekomst als het gaat om e-platforms! Ze behoren ondanks dat ze relatief klein zijn qua omvang tot de top wat betreft het ontwikkelen van e-platforms in Nederland! Dit is ook te leiden uit de prominente opdrachtgevers die zij hebben. Het bedrijf is zeer dynamisch en je komt in een mooi (en ook erg gezellig) kantoor te werken in een team met 2 andere professionele collega's. Samen maak je gebruik van bewezen en nieuwe technologieën om de PHP software ontwikkeling

Bekijk vacature »

PHP Full Stack Engineer

Full Stack Engineer– PHP / JavaScript / Agile / React / Symfony FANTASTIC OPPORTUNITY TO JOIN THE BEST TECHNICAL ORGANISATION UTRECHT HAS TO OFFER! Mid to senior-level candidates required Central Amersfoort location, easily commutable on public transport PHP / JavaScript / Agile / React / Symfony Competitive salary / flexi-time To apply please call +31(0)208 004 990 or +44 7880 358 143 or email me; Chris.hopley@searchability.com Based in our amazing offices in the heart of Amersfoort, we are a collective of talented professionals who are all self-motivated to provide the best technical solutions that our clients won't find anywhere else

Bekijk vacature »

C# .NET Full Stack Developer

Bedrijfsomschrijving Dit internationale is marktleider op het gebied van automatisering. Door de vooruitlopende technieken zijn de processen zo efficiënt mogelijk ingericht. De software verwerkt aanvragen automatisch en zorgt ervoor dat binnen 24 uur de bestelling geleverd kan worden. De organisatie is dan ook continu bezig met het verder ontwikkelen en investeren in de nieuwste technieken. Het development team bestaat op dit moment uit zeven collega's, maar de totale organisatie uit meer dan 300 professionals. Het team is verantwoordelijk voor de gehele softwareontwikkeling, van front-end tot (productie)procesautomatisering. Iedereen heeft zijn/ haar eigen specialisatie, maar alles is mogelijk. Hierbij krijg je veel

Bekijk vacature »

Mobile App Developer

Ons Mobile-ontwikkelteam zoekt een gedreven Mobile App Ontwikkelaar. Ben jij analytisch en heb je passie voor het ontwikkelen van apps? Dan zijn wij op zoek naar jou! Jouw baan ChipSoft heeft al diverse apps uitgebracht en het aantal gebruikers hiervan neemt snel toe. Je kunt hierbij denken aan apps voor verpleegkundigen, thuiszorgmedewerkers, de sterilisatieafdeling en - natuurlijk - de artsen zelf. Door jouw hands-on-mentaliteit, eigenwijsheid en technisch inzicht kun je nauwkeurig herbruikbare software schrijven. Die software sluit naadloos aan op onze ‘back end’ (HiX, onze ICT-totaaloplossing voor de zorg). Samen met je collega’s ben je verantwoordelijk voor het ontwerpen en

Bekijk vacature »

Applicatiebeheerder

Stroom jij over van kwaliteit om wereldwijde waterproblemen aan te pakken? Kun jij wensen en eisen vertalen naar IT vereisten? En hou je van een dynamische omgeving, waarin jouw baan ertoe doet, jouw ideeën worden gehoord en waar je werkelijk het verschil kan maken voor jouw collega’s en het bedrijf? Zo ja, dan zijn wij op zoek naar jou. Als je daar bovenop niet bang bent voor Windows en Linux en je hebt kennis van Office 365, dan ben jij de perfecte kandidaat! Applicatiebeheerder technische affiniteit, gedreven, eigenaarschap Jij helpt ons door ervoor te zorgen, dat de applicaties soepel lopen.

Bekijk vacature »

Netwerk Engineer (Medior/Senior)

Netwerk Engineer (Medior/Senior) Functiebeschrijving: Samenwerken in het Openbare Orde en veiligheidsdomein zit in ons DNA, Dareto Share. Wij bouwen langdurige relaties op met onze klanten en hebben dezelfde ambitie, Nederland veilig maken en -veilig houden. Wij leveren daarmee een maatschappelijke bijdrage aan de samenleving, dat vinden wij belangrijk. Ben jij een ambitieuze Netwerk Engineer die de ontwikkelingen en innovaties op het gebied van Network & Automation op de voet volgt of wil je je expertise juist verbreden en certificeren in meerdere technieken en tools? Wij zoeken ter versterking van ons team zowel Senior- als medior engineers met passie voor hun

Bekijk vacature »

PHP Developer

Bedrijfsomschrijving Het bedrijf waar je komt te werken is een familiebedrijf. Een van de grootste spelers in de internationale bloemenhandel. De cultuur binnen het bedrijf kan het beste worden omschreven als no-nonsense. We werken hard met elkaar om de klus te klaren en stoppen pas als het werk af is. Betrokkenheid, enthousiasme en collegialiteit staan hoog in het vaandel. Functieomschrijving Jij vult je dagen met enthousiasme voor het onderhouden, door ontwikkelen en testen van de webapplicatie. Je zult hierbij participeren in diverse projecten ten behoeve van uitbreiding en functionaliteit. Ook zul je API koppelingen opzetten met externe partijen en dit

Bekijk vacature »

XML JAVA ontwikkelaar

Bedrijfsomschrijving KOOP ontwikkelt en beheert momenteel onder meer de volgende producten: Wet- en regelgevingsportalen (o.a. Wetten.nl en CVDR ). Hier kunnen gebruikers op basis van trefwoorden en andere criteria wetten en regelgevingen inzichtelijk krijgen; PUC Open Data platform (o.a. puc.overheid.nl en afgeleide producten en interne kennisbanken). Hier publiceren overheidsorganisaties zelf hun uitvoeringsinformatie die publiekelijk beschikbaar is, zoals beleid, handboeken, werkinstructies en berichten. Wettenpocket+ (o.a. portaal en App voor Android en iOS). Hiermee kunnen de gebruikers Wettenpockets raadplegen. Een Wettenpocket bundelt relevante regelgeving en aanvullende informatie op een specifiek rechtsgebied, en kan worden samengesteld door verschillende organisaties binnen de Rijksoverheid. PLOOI

Bekijk vacature »
Levy van der Meijden

Levy van der Meijden

21/09/2019 01:56:09
Quote Anchor link
Beste leden,

Op dit moment worden de waardes van de kalender geladen, wanneer ik op een button klik.

Dit is de functie voor het laden van de gegevens.
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
<script>
$(document).ready(function() {
function checkDate(selectedDate) {
<?php

$q
="select distinct date_format( date, '%d-%m-%Y' ) as date from sportevenementen";

$str="[ ";
foreach ($dbo->query($q) as $row) {
$str.="\"$row[date]\",";
}

$str=substr($str,0,(strlen($str)-1));
$str.="]";
echo "var not_available_dates=$str";

?>
    
 var m = selectedDate.getMonth()+1;
 var d = selectedDate.getDate();
 var y = selectedDate.getFullYear();
 m=m.toString();
 d=d.toString();
if(m.length <2){m='0'+m;}
if(d.length <2){d='0'+d;}
 var date_to_check = d+ '-' + m + '-'  + y ;
 for (var i = 0; i < not_available_dates.length; i++) {
 if ($.inArray(date_to_check, not_available_dates) != -1 ) {
 return [true,'voor_dates','Bekijk dag'];
 }else{
return [false,'na_dates','Geen agenda punten'];
}
}
}
$(function() {
    $( "#date_picker" ).datepicker({
dateFormat: 'dd-mm-yy',
beforeShowDay:checkDate,
onSelect:function() {
selectedDate = $('#date_picker').val();
var url="display-data.php?selectedDate="+selectedDate;
$('#d1').load(url);
  }
});
});
})
</script>

Op internet heb ik wel gevonden, hoe een page onload wordt gebruikt.
<script type="text/javascript">

    $(document).ready(function () {
        yourFunction();
    });
    function yourFunction(){
      //some code
    }
</script>

window.onload = yourFunction;


Verschillende manieren geprobeerd om dit toe te passen, maar het is nog niet gelukt.
Zou iemand kunnen vertellen, hoe ik de onload kan toepassen?

Bedankt alvast,

Met vriendelijke groet,

Levy van der Meijden

Edit:
Code tags toegevoegd, zie ook de opmaakcodes in de Veelgestelde Vragen
Gewijzigd op 21/09/2019 07:33:20 door - Ariën -
 
PHP hulp

PHP hulp

16/01/2021 05:48:56
 
- Ariën -
Beheerder

- Ariën -

21/09/2019 07:35:27
Quote Anchor link
Ben je je bewust dat je PHP-script altijd uitgevoerd wordt? PHP wordt al op de server uitgevoerd, en javascript door de browser.
 
Rob Doemaarwat

Rob Doemaarwat

21/09/2019 12:01:54
Quote Anchor link
Die window.onload = yourFunction; staat nu buiten de <script> tags, dus dat gaat niet werken. Maar je ready event zou het ook moeten doen (dus kies 1 vd 2). Maar nu moet je dus ipv yourFunction() of //some code dezelfde functie aanroepen die je nu (blijkbaar ergens) aan de onclick van de butten hebt gekoppeld.
 
Levy van der Meijden

Levy van der Meijden

21/09/2019 14:01:48
Quote Anchor link
Ja, de PHP-script wordt elke keer uitgevoerd wanneer ik een PHP-pagina laadt. Maar van een JavaScript wist ik het niet.
Dat weet ik dat de window.onload = yourfunctie buiten het script staat. Verschillende manieren geprobeerd om dit tussen het script te plaatsen, maar dit is nog niet gelukt. Ook is het niet gelukt om een functie van een onload toe te passen.

document.getElementById("checkdate").onload = function() {yourfunctie()};

Met vriendelijke groet,

Levy van der Meijden
Gewijzigd op 21/09/2019 18:30:00 door Levy van der Meijden
 
Thomas van den Heuvel

Thomas van den Heuvel

21/09/2019 17:32:13
Quote Anchor link
Maar, dit is toch gewoon onderdeel van de initialisatie van je DatePicker kalender? Lijkt mij dat je dit dus niet toepast op het document of wat dan ook (en daarna met een click naar je kalender stuurt), maar (rechtstreeks) op de datepicker (zelf)?

Je kunt volgens mij met de optie/callback beforeShowDay() bepalen op welke datums geklikt kan worden en met de optie/callback onSelect() kun je vervolgens programmeren wat er moet gebeuren als je op een van die datums klikt.

Maar dit kun je dus helemaal in de initalisatie van je datepicker regelen, eventueel afhankelijk van informatie uit je database.

Met het bovenstaande zou je het gewenste effect moeten kunnen bereiken (een soort event kalender waar je op kunt klikken). Hoe je de code precies vormgeeft valt met deze twee specifieke opties wel bij elkaar te googlen en anders kunnen we hier wel even verder kijken.

EDIT: de bovenstaande code zou dus, mits goed vormgegeven, moeten werken.
EDIT: ben je nagegaan of je JavaScript code ergens breekt? dat zou mogelijk kunnen verklaren waarom dingen (ogenschijnlijk) niet werken.
Gewijzigd op 21/09/2019 17:46:24 door Thomas van den Heuvel
 
Levy van der Meijden

Levy van der Meijden

21/09/2019 18:28:58
Quote Anchor link
Bedankt voor je reactie. Ja, na het laden van de kalender gebruik ik de functie Datepicker. Nu heb ik nog geen onload functie voor het laden van de kalender. Graag zou ik bij het laden van de pagina, de kalender willen zien. Nu wordt de kalender pas getoond, wanneer ik op een button klik.
<input type="text" size="13" value="Openen" class="btn2" id="date_picker">

Moet ik voor het laden van de kalender, de functie Checkdate gebruiken?
 
- Ariën -
Beheerder

- Ariën -

21/09/2019 19:04:56
Quote Anchor link
De plain onLoad voor lijkt mij niet echt nodig. Dat doet de .ready() in jQuery functie al.
Ik neem aan dat je die ook inlaadt?
 
Levy van der Meijden

Levy van der Meijden

21/09/2019 19:26:01
Quote Anchor link
Oke, nee volgens mij niet.
Het script bovenaan gebruik ik als volgt:

$(document).ready(function() {
function checkDate(selectedDate) {

Bedoel je het inladen van de date_picker?
 
Thomas van den Heuvel

Thomas van den Heuvel

22/09/2019 00:23:06
Quote Anchor link
Hm. Er begint mij iets te dagen.

Wanneer je in zijn algemeenheid zoiets hebt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$(
something
);
lala;

Dan gebeurt er het volgende:
- er wordt gestart met de uitvoering van "something"
- direct daarna wordt "lala" uitgevoerd

Het kan dus zijn dat "something" nog bezig is als "lala" al uitgevoerd is. Met dit soort functienesting en callbacks kan het dus heel goed zijn dat er verschillende dingen "tegelijkertijd" gebeuren maar de volgorde is dan niet gegarandeerd.

Maar ook: als je op twee verschillende manieren besluit wanneer iets "klaar voor gebruik" is dan kom je mogelijk in de knoop met timing. Een combinatie van window.onload en $(document).ready(...) is daarom misschien ook niet echt aan te bevelen.

Dat gezegd hebbende, nog twee dingen. Allereerst: ben je nagegaan wanneer onload en ready vuren? In mijn datepicker probeersel is onload consistent sneller dan alles wat in document ready gebeurt. Dat zou in jouw geval dus ook inhouden dat je datepicker nog bezig is met whatever als je deze probeert te vullen.

Ten tweede: misschien moet je ook gaan nadenken over het dynamisch ophalen van de event-data. Nu haal je *alle* events op, niet enkel van de huidige maand. Op den duur wordt zo'n query een beetje onhandelbaar en/of wil je hier meer condities aan ophangen in geval van gepersonaliseerde event-kalenders ofzo.

Jammergenoeg heeft de datapicker niet echt veel (geen?) events waar je op in kan haken. Wat je wel kunt doen is de initialisatie van het datepicker-object inbouwen in de callback voor het ophalen van de initiële events. Ook zou je dingen wat verder kunnen splitsen zodat je de verschillende dingen functioneel scheidt en de code wat schoner wordt.

Je krijgt dan bijvoorbeeld de volgende opzet:
index.php
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
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DatePicker Event Calendar</title>
<link rel="stylesheet" type="text/css" href="assets/jquery-ui.css">
<script src="assets/jquery-3.4.1.min.js" type="text/javascript"></script>
<script src="assets/jquery-ui.js" type="text/javascript"></script>
</head>

<body>
<div id="datepicker"></div>

<script type="text/javascript">
//<![CDATA[
$().ready(function() {
    var myEvents = {};

    // fetch initial events and initialize datepicker with these
    $.ajax({
        'url': 'ajax.php',
        'method': 'get',
        'data': {'y': 2019, 'm': 9}, // @todo pull initial year and month from somewhere, might also depend on what initial month you want to show
        'dataType': 'json',
        'success': function(data) {
            myEvents = data;

            $('#datepicker').datepicker({
                // format date that is returned when clicking a date
                'dateFormat': 'yy-mm-dd',

                // for loading in the events to check if there is an event on that day
                'beforeShowDay': function(d) {
                    return checkMyEvents(d);
                },

                // beforeShow, for when initially loading the calendar; does not seem to trigger on load if its always visible

                'onChangeMonthYear': function(y, m) {
                    fetchMyEvents(y, m);
                },

                'onSelect': function(dateText, instance) {
                    console.log('clicked '+dateText); // debug
                    if (dateText in myEvents) {
                        console.log('corresponds with event ['+myEvents[dateText]['name']+']'); // debug; @todo implement further handling
                    }
                }
            });
        }
    })

    function checkMyEvents(d) {
        var eventDate = d.getFullYear()+'-'+('0'+(d.getMonth()+1)).slice(-2)+'-'+('0'+(d.getDate())).slice(-2); // yyyy-mm-dd
        if (eventDate in myEvents) {
            return [true, '', myEvents[eventDate]['name']];
        } else {
            return [false];
        }
    } // checkMyEvents

    function fetchMyEvents(y, m) {
        console.log('fetching events for '+y+'-'+m); // debug
        $.ajax({
            'url': 'ajax.php',
            'method': 'get',
            'data': {'y': y, 'm': m},
            'dataType': 'json',
            'success': function(data) {
                myEvents = data;
                $('#datepicker').datepicker('refresh'); // update datepicker with new events
            }
        });
    } // fetchMyEvents
});
//]]>
</script>
</body>
</html>


ajax.php
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
<?php
// normally, this data would come from a database
// format it in the way you would use it in jquery

$events = array(
    2019 => array(
        8 => array(
            '2019-08-02' => array('name' => 'august event #1', 'link' => 'date.php?date=2019-08-02'),
            '2019-08-05' => array('name' => 'august event #2', 'link' => 'date.php?date=2019-08-05'),
            '2019-08-10' => array('name' => 'august event #3', 'link' => 'date.php?date=2019-08-10'),
        ),

        9 => array(
            '2019-09-20' => array('name' => 'september event #4', 'link' => 'date.php?date=2019-08-20'),
            '2019-09-22' => array('name' => 'september event #5', 'link' => 'date.php?date=2019-08-22'),
            '2019-09-24' => array('name' => 'september event #6', 'link' => 'date.php?date=2019-08-24'),
        ),

        10 => array(
            '2019-10-10' => array('name' => 'october event #7', 'link' => 'date.php?date=2019-10-10'),
            '2019-10-11' => array('name' => 'october event #8', 'link' => 'date.php?date=2019-10-11'),
            '2019-10-12' => array('name' => 'october event #9', 'link' => 'date.php?date=2019-10-12'),
        ),
    ),
);


$selectedEvents = array();

if (
    isset($_GET['y']) && isset($_GET['m']) &&
    isset($events[$_GET['y']][$_GET['m']])
) {

    $selectedEvents = $events[$_GET['y']][$_GET['m']];
}


header('Content-Type: application/json; charset=UTF-8');
echo json_encode($selectedEvents);
?>
Gewijzigd op 22/09/2019 15:47:15 door Thomas van den Heuvel
 
Levy van der Meijden

Levy van der Meijden

22/09/2019 01:16:23
Quote Anchor link
Echt super bedankt! Ja, dit is veel beter!
 



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.