Foutmeldingen in/bij formuliervelden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java/Kotlin Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Senior C# Software Ontwikkelaar te Zaandam

Bedrijfsomschrijving Deze werkgever heeft als missie om haar klanten op ICT-gebied volledig te ontzorgen. Ze zijn een ICT bedrijf met een verscheidenheid aan ICT oplossingen waaronder Cloud oplossingen en een groot deel van het werk is gericht op software realisatie. Voor de Enterprise-klanten voert het relatief kleine ontwikkelteam waar jij deel uit van kan gaan maken binnen deze organisatie te Zaandam de grootste opdrachten uit. Niet alleen websites en complexe webapplicaties maar ook mobile apps, web services en complete systeemintegraties! Je moet dan denken aan Dynamics, Sharepoint en Salesforce. Je komt hier terecht in een relatief kleine organisatie met ontzettend

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

SQL ontwikkelaar

Functieomschrijving Voor een gave werkgever in regio Breda zijn wij per direct op zoek naar een SQL ontwikkelaar/ functioneel consultant. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Je test de ontwikkelde oplossingen om er zeker van te zijn dat deze voldoen aan de functionele specificaties en de behoeften van de organisatie; Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Je stelt op

Bekijk vacature »

Front-end Developer

Gezellige team, passie en een groene toekomst! Lees hier de vacature van Front-end Developer bij All in Power! All in power heeft zich tot doel gesteld écht bij te dragen aan de energietransitie. Dit doen wij door de markt voor energie volledig op zijn kop te zetten. Producenten van schone (wind- of zonne-)energie verkopen via ons platform hun energie rechtstreeks aan gebruikers. Of dit nu huishoudens, bedrijven of bijvoorbeeld laadpalen zijn ons platform maakt het uitwisselen van energie mogelijk. Zo maken we de business case van onze klanten veel sterker en loont het om (meer) te investeren in vergroening voor

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

IT Manager team PaaS

TenneT is hard groeiende om haar ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Lead PaaS die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je wordt de Teammanager (Lead) van een nieuw team binnen de afdeling Basic van Information Technology and Facilities (ITF) van TenneT. Het team heet Platform as a Service. Hier wordt elke dag in een goede sfeer met zijn allen hard gewerkt om vanuit IT

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

Bekijk vacature »

Senior .NET Ontwikkelaar

In het kort Als Senior .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag met complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek (denk aan ECT) en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan

Bekijk vacature »

Fullstack developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een andere uitdaging? Voor een erkende werkgever in de omgeving van Breda zijn wij op zoek naar een Fullstack developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

Medior/senior Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

Java Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »
Krist Ensing

Krist Ensing

20/08/2013 16:46:05
Quote Anchor link
Ik heb een formulier gemaakt volgens OOP principe. Ik wil dat de Error message in het formulier getoond wordt op de plek waar het veld fout is. Hoe kan ik dit regelen?

In het vogende stuk code (Ik weet niet hoe ik de stukken code van elkaar kan schreiden:
Code Form class:
Code Element class
Code Text Element
Code RegistratieForm
Code formulier.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
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
<?php


abstract class Form implements IForm {

    private $elements;
    private $id;
    private $action;
    private $method;
    private $attribs;
    private $isGeldig;
    private $errorMessages;
    private $values;

    const METH_POST = 'post';
    const METH_GET = 'get';

    public function __construct($options) {
        $this->isGeldig = true;
        $this->errorMessages = array();
        $this->values = array();
        $this->id = isset($options['id']) ? $options['id'] : 'Formulier';
        $this->action = isset($options['action']) ? $options['action'] : '#';
        $this->method = isset($options['method']) ? $options['method'] : self::METH_POST;
        //attribs zijn alle overige HTML-attributen die je aan een formulier zou willen toekennen: style, class etc.
        $this->attribs = isset($options['attribs']) ? $options['attribs'] : '';
    }


    public function add(IElement $elm) {
        $this->elements[$elm->getName()] = $elm;
    }


    public function render() {
        //PHP_EOL is een ingebouwde constante in PHP die een nieuwe regel maakt (zie je in broncode van de HTML)

        $html = "<form method='{$this->method}' action='{$this->action}' id='{$this->id}' {$this->attribs}>" . PHP_EOL;
        foreach ($this->elements as $element) {
            $html .= $element->render() . '<br />' . PHP_EOL;
        }

        $html .= "</form>" . PHP_EOL;
        return $html;
    }


    public function isValid() {
        $this->clean();
        foreach ($this->elements as $element) {
            if (!$element->isValid()) {
                $this->isGeldig = false;
                $this->errorMessages[$element->getName()] = $element->getMessages();
            }
        }


        return $this->isGeldig;
    }


    public function getMessages() {
        return $this->errorMessages;
    }


    public function clean() {
        foreach ($this->elements as $element) {
            $element->clean();
        }
    }


    public function getValues() {
        foreach ($this->elements as $key => $element) {
            $this->values[$key] = $element->getValue();
        }

        return $this->values;
    }

}

?>


code class Element
<?php

abstract class Element implements IElement {


    protected $filters;
    protected $validators;
    protected $options;
    protected $value;
    protected $name;
    protected $label;
    protected $attribs;

    protected $isGeldig;
    protected $errorMessages;

    public function __construct(array $options = array())
    {

        $this->isGeldig = true;
        $this->filters = array();
        $this->validators = array();
        $this->value = '';
        $this->setOptions($options);
    }


    public function setOptions(array $options)
    {

        $this->name = isset($options['name']) ? $options['name'] : 'standaardnaam'; //eigenlijk moet de naam worden getest; niet alle namen zijn volgens de HTML-specs toegestaan!
        $this->label = isset($options['label']) ? $options['label'] : 'label';
        $this->value = isset($options['value']) ? $options['value'] : '';
        $this->attribs = isset($options['attribs']) ? $options['attribs'] : '';
        if (isset($options['validators']) && is_array($options['validators'])) {
            foreach ($options['validators'] as $validator) {
                $this->addValidator($validator);
            }
        }

        if (isset($options['filters']) && is_array($options['filters'])) {
            foreach ($options['filters'] as $filter) {
                $this->addFilter($filter);
            }
        }
    }


    public function addValidator(Validator $validator)
    {

        $this->validators[] = $validator;
    }


    abstract public function render();

    public function addFilter(Filter $filter)
    {

        $this->filters[] = $filter;
    }


    public function isValid()
    {

        foreach ($this->validators as $validator) {
            if (!$validator->isValid($this->value)) {
                $this->isGeldig = false;
                $this->errorMessages[] = $validator->getMessages();
            }
        }

        return $this->isGeldig;
    }


    public function clean()
    {

        $localValue = $this->value;
        foreach ($this->filters as $filter) {
            $localValue = $filter->clean($localValue);
        }

        $this->value = $localValue;
    }


    public function getValue()
    {

        return $this->value;
    }


    public function getMessages()
    {

        return $this->errorMessages;
    }


    public function getName()
    {

        return $this->name;
    }


}

?>

Code Text element

<?php
/**
 * User: GJ
 * Name: TextElement.php
 * Date: 14-8-13
 * Time: 12:10
 */


class TextElement extends Element {

    public function render()
    {

        $html = '';
        $html .= '<label>' . $this->label;
        $html .= "<input type='text' name='{$this->name}' value='{$this->value}' $this->attribs>";
        $html .= '</label>';
        $html .= $this->getMessages();
        return $html;
    }
}

?>

Code RegistratieForm:

<?php

class RegistratieForm extends Form {

    public function __construct($options) {
        parent::__construct($options);

        $initials = new TextElement();
// we kunnen een element aanmaken en pas daarna de opties zetten, zoals hier:
        $initials->setOptions(array(
            'name' => 'voorletters',
            'label' => 'Uw voorlettes',
            'value' => isset($_GET['voorletters']) ? $_GET['voorletters'] : '',
            'validators' => array(
                new
InitialValidator(array() /* no options necessary */),
            ),
                )
        );


        $lastname = new TextElement();
// we kunnen een element aanmaken en pas daarna de opties zetten, zoals hier:
        $lastname->setOptions(array(
            'name' => 'achternaam',
            'label' => 'Uw achternaam',
            'value' => isset($_GET['achternaam']) ? $_GET['achternaam'] : '',
            'validators' => array(
                new
LastNameValidator(array() /* no options necessary */),
            ),

            'filters' => array(
                new
FilterStripTags(),
                new
FilterTrim()
            )
                )
        );

        $email = new TextElement();
// we kunnen een element aanmaken en pas daarna de opties zetten, zoals hier:
        $email->setOptions(array(
            'name' => 'email',
            'label' => 'Uw e-mailadres',
            'value' => isset($_GET['email']) ? $_GET['email'] : '',
            'validators' => array(
                new
EmailValidator(array() /* no options necessary */),
            ),

            'filters' => array(
                new
FilterStripTags(),
                new
FilterTrim()
            )
                )
        );


// of we maken een element en geven bij de constructie al de opties weer, zoals hier
        $password = new PasswordElement(array(
            'name' => 'password',
            'label' => 'Uw wachtwoord',
            'value' => isset($_GET['password']) ? $_GET['password'] : '',
            'validators' => array(
                new
StringLengthValidator(array('min' => 3, 'minError' => 'Het wachtwoord is te kort', 'max' => 12, 'maxError' => 'Het wachtwoord is te lang'))
            ),

            'filters' => array(
                new
FilterStripTags(),
                new
FilterTrim()
            )
                )
        );

        $submit = new SubmitElement(array(
            'value' => 'verzenden',
            'name' => 'verzenden',
                )
        );


//de gemaakte elementen toevoegen aan het formulier
        $this->add($initials);
        $this->add($lastname);
        $this->add($email);
        $this->add($password);
        $this->add($submit);
    }

}

?>

code formulier.php:

<?php

//autoloader
function __autoload($class) {
    require_once $class . '.php';
}


//het formulier aanmaken
$form = new RegistratieForm(
        array(
    'id' => 'frmRegistratie',
    'css' => 'userform',
    'method' => 'get',
    'action' => ''
        )
);


//de elementen aanmaken:


if (isset($_GET['verzenden'])) {

    $result = $form->isValid();
    if ($result == TRUE) {
        var_dump('correct', $form->getValues());
    }
else {
        var_dump('', $form->getMessages());
    }

    die();
}


$html = $form->render();


echo $html;

?>


Hopelijk kan iemand mij helpen om de foutmeldingen in het formulier te krijgen op de plek waar de waarde niet valide is. (en de rest van het formulier ingevuld houden).

Alvast bedankt!
Gewijzigd op 20/08/2013 16:53:26 door Krist Ensing
 
PHP hulp

PHP hulp

18/11/2024 01:26:34
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 17:38:50
Quote Anchor link
zonder jouw classes helemaal gelezen te hebben, hier hoe ik het doe:

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
<?php
class form
{
    private $errors;
    
    function
validate()
    {

        if($_POST['email'] == '')
            $this->errors['email'] = 'Je hebt geen emailadres ingevuld.';
        
        // en nog meer velden die je kunt valideren
        
        if(count($this->errors))
            return false;
            
        return true;
    }
    
    function
getError($id)
    {

        if(isset($this->errors[$id]))
            return $this->errors[$id];
            
        return '';
    }
};

?>
Gewijzigd op 20/08/2013 17:41:38 door Frank Nietbelangrijk
 
Krist Ensing

Krist Ensing

20/08/2013 19:27:56
Quote Anchor link
Het probleem is dat de foutmelding nu in plaats van het formulier komt dmv een vardump. MIsschien wil je toch naar me code kijken, om te zien waar ik hem moet aanpassen. Ik heb namelijk de class Form, zoals je hierboven beschrijft als een abstracte klasse. De elementen zelf worden via de abstracte klasse Element in de klasse Text element (en andere gerenderd). Hier moet ik volgens mij ergens die foutmelding in kunnen weergeven, maar dan moet ik nog wel wat doen met de code onderaan in formulier.php (staat onderaan mijn lap code).

De rendercode va TextElement.php is deze:

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
<?php


class TextElement extends Element {

    public function render()
    {

        $html = '';
        $html .= '<label>' . $this->label;
        $html .= "<input type='text' name='{$this->name}' value='{$this->value}' $this->attribs>";
        $html .= '</label>';
        $html .= $this->getMessages();
        return $html;
    }
}
[
code]

Hopelijk kun je me verder helpen!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 20:17:41
Quote Anchor link
de form class is verantwoordelijk voor het formulier als geheel en gebruikt hierbij verschillende objecten. een extra object kan dan een 'error' object zijn. Nu heb je in de form class een functie render(). deze laat de verschillende elementen renderen. bij het aanmaken van je elementen lees je de GET variabelen uit. dat is dan dus ook de plek om error-elementen aan te maken. wellicht is het een idee om aan de basis 'element'-class een functie toe te voegen als 'setError()' die de validatie functie aanroept als er een invoer wordt afgekeurd. Binnen deze functie moet dan een nieuw Error object aangemaakt worden zodat de classes zo abstract mogelijk blijven. als de render functie van de elementen worden aangeroepen dan moet ook de render functie van het error-object aangeroepen worden. zo kun je de visualisatie van de errors later zeer simpel aanpassen. Om het compleet te maken zou ik aan de constructor van de form en/of de elementen meegeven welk error object je wilt gebruiken zodat je het error object kunt overerven.


Toevoeging op 20/08/2013 20:22:34:

een andere tip:
de $_GET en $_POST zijn gewoon arrays. je kunt gewoon $arr = $_GET doen om de hele array in één keer te kopiëren. gebruik dan in de rest van je code gewoon $arr zodat je makkelijker kan switchen van GET naar POST en eventueel SESSION.
 
Krist Ensing

Krist Ensing

20/08/2013 20:28:30
Quote Anchor link
Ik ben echt een beginneling wat betreft oo programmeren. Ik begrijp je betoog wel, maar de juiste code weet ik zo niet. Je zou me heel erg helpen om het in mijn code uit te werken, zodat ik begrijp wat er moet gebeuren.
Ik begrijp het als dat veel gevraagd is, maar hoop toch dat je het wilt doen, ik zou er enorm mee geholpen zijn.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 21:18:49
Quote Anchor link
Morgen wil ik (misschien) wel even voor je kijken. zou handig zijn om de volledige code te hebben
 
Krist Ensing

Krist Ensing

20/08/2013 21:32:15
Quote Anchor link
Als je me een mailtje stuurt, heb ik je mailadres en zal ik de volledige code toesturen.
Gewijzigd op 20/08/2013 21:42:57 door Krist Ensing
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/08/2013 21:36:55
Quote Anchor link
geregeld
 



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.