Radio buttons doormailen
Ik heb dus een formulier gemaakt in php en html waarvan ik de antwoorden graag door wil sturen naar een mailadres. Nu gaat alles met textboxen prima, maar de radiobuttons doen moeilijk, zij geven (wat je ook kiest) altijd een "1" door in de mail. Zie scriptjes hieronder. Hoe moet ik dit oplossen?
Formulier:
Code (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
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
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
<?php
if (isset($_SESSION['vriendenvan_ouders_formdata'])) {
$formdata = $_SESSION['vriendenvan_ouders_formdata'];
}else{
$formdata = array();
}
?>
<html>
<form action="oudersverzenden.php" method="post">
<h2>Lidmaatschapsgegevens</h2>
<ul>
Duur lidmaatschap*<br />
<input type="radio" name="duur" value="<?=@htmlentities($formdata['duur1'])?>"/> 1 jaar (minimaal 10)<br />
<input type="radio" name="duur" value="<?=@htmlentities($formdata['duur2'])?>"/> 3 jaar (minimaal 25)<br /><br />
Bedrag (vul een bedrag in waarmee u ons wil steunen)*<br />
<input type="text" name="bedrag" value="<?= @htmlentities($formdata['bedrag']) ?>"/><br />
</ul>
<h2>Persoonsgegevens</h2>
<ul>
Aanhef*<br />
<input type="radio" name="aanhef" value="<?= @htmlentities($formdata['aanhef']) ?>"/>Dhr.<br />
<input type="radio" name="aanhef" value="<?= @htmlentities($formdata['aanhef']) ?>"/>Mw.<br /><br />
Voornaam*<br />
<input type="text" name="voornaam" value="<?= @htmlentities($formdata['voornaam']) ?>"/><br /><br />
Achternaam*<br />
<input type="text" name="achternaam" value="<?= @htmlentities($formdata['achternaam']) ?>"/><br /><br />
Geboortedatum*<br />
<input type="date" name="geboortedatum" value="<?= @htmlentities($formdata['geboortedatum']) ?>"/><br /><br />
Naam zoon/dochter*<br />
<input type="text" name="naam" value="<?= @htmlentities($formdata['naam']) ?>"/><br /><br />
</ul>
<h2>Contactgegevens</h2>
<ul>
E-mailadres*<br />
<input type="text" name="email" value="<?= @htmlentities($formdata['email']) ?>"/><br /><br />
Wilt u de nieuwsbrief (per e-mail) ontvangen?*<br />
<input type="radio" name="nieuwsbrief" value="<?= @htmlentities($formdata['nieuwsbrief']) ?>"/>Ja<br />
<input type="radio" name="nieuwsbrief" value="<?= @htmlentities($formdata['nieuwsbrief']) ?>"/>Nee<br /><br />
Wilt u het MOTjE (per e-mail) ontvangen?*<br />
<input type="radio" name="motje" value="<?= @htmlentities($formdata['motje']) ?>"/>Ja<br />
<input type="radio" name="motje" value="<?= @htmlentities($formdata['motje']) ?>"/>Nee<br /><br />
Telefoonnummer*<br />
<input type="text" name="telefoon" min="10" value="<?= @htmlentities($formdata['telefoon']) ?>"/><br /><br />
Straat en huisnummer*<br />
<input type="text" name="adres" value="<?= @htmlentities($formdata['adres']) ?>"/><br /><br />
Postcode*<br />
<input type="text" name="postcode" value="<?= @htmlentities($formdata['postcode']) ?>"/><br /><br />
Woonplaats*<br />
<input type="text" name="plaats" value="<?= @htmlentities($formdata['plaats']) ?>"/><br /><br /><br />
<input type="submit" name="versturen" value="Verstuur"/><br /><br />
</ul>
<p>Alle velden gemarkeerd met een * zijn verplicht.</p>
</form>
</html>
Controleer en verzendscript:
<?php
$naar = 'email'; // Waar moet het naartoe?
$onderwerp = 'Inschrijfformulier Vriend van BeeVee'; // Het onderwerp van het bericht
if ('POST' === $_SERVER['REQUEST_METHOD']) // Als het formulier verzonden is door op de verzend knop te klikken
{
$formValues = array(
'duur' => isset($_POST['duur']), // Alle overbodige spaties uit het voornaam veld verwijderen
'bedrag' => trim($_POST['bedrag']),
'aanhef' => isset($_POST['aanhef']),
'voornaam' => trim($_POST['voornaam']),
'achternaam' => trim($_POST['achternaam']),
'geboortedatum' => trim($_POST['geboortedatum']),
'naam' => trim($_POST['naam']),
'email' => trim($_POST['email']),
'nieuwsbrief' => isset($_POST['nieuwsbrief']),
'motje' => isset($_POST['motje']),
'telefoon' => trim($_POST['telefoon']),
'adres' => trim($_POST['adres']),
'postcode' => trim($_POST['postcode']),
'plaats' => trim($_POST['plaats'])
);
$_SESSION['vriendenvan_ouders_formdata'] = $formValues;
$errorInForm = false;
if(empty($formValues['duur']))
{
print '<p>Vul een lidmaatschapsduur in.</p>';
$errorInForm = true;
}
if(empty($formValues['bedrag']))
{
print '<p>Vul een bedrag in.</p>';
$errorInForm = true;
}
if(empty($formValues['aanhef']))
{
print '<p>Vul een aanhef in.</p>';
$errorInForm = true;
}
if(empty($formValues['voornaam']))
{
print '<p>Vul een voornaam in.</p>';
$errorInForm = true;
}
if(empty($formValues['achternaam']))
{
print '<p>Vul een achternaam in.</p>';
$errorInForm = true;
}
if(empty($formValues['geboortedatum']))
{
print '<p>Vul een geboortedatum in.</p>';
$errorInForm = true;
}
if(empty($formValues['naam']))
{
print '<p>Vul een naam van uw zoon/dochter in.</p>';
$errorInForm = true;
}
if(empty($formValues['email']))
{
print '<p>Vul een e-mailadres in.</p>';
$errorInForm = true;
}
if(!filter_var($formValues['email'], FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
{
print '<p>Vul een juist e-mailadres in.</p>';
$errorInForm = true;
}
if(empty($formValues['nieuwsbrief']))
{
print '<p>Geef aan of u de nieuwsbrief wilt ontvangen of niet.</p>';
$errorInForm = true;
}
if(empty($formValues['motje']))
{
print '<p>Geef aan of u het MOTjE wilt ontvangen of niet.</p>';
$errorInForm = true;
}
if(empty($formValues['telefoon']))
{
print '<p>Vul een telefoonnummer in.</p>';
$errorInForm = true;
}
if(empty($formValues['adres']))
{
print '<p>Vul een straat en huisnummer in.</p>';
$errorInForm = true;
}
if(empty($formValues['postcode']))
{
print '<p>Vul een postcode in.</p>';
$errorInForm = true;
}
if(empty($formValues['plaats']))
{
print '<p>Vul een woonplaats in.</p>';
$errorInForm = true;
}
if ( $errorInForm ) {
print('<p>Probeer het <a href="vriendenvanbeevee-ouders.php">hier</a> opnieuw.</p>');
}else{
$emailSender = new email();
$emailSender->set_sender( $formValues['voornaam'] . ' ' . $formValues['achternaam'], $formValues['email'] );
$emailSender->set_subject( $onderwerp );
$strBody = <<<EOM
Gegevens vriend van BeeVee (ouders)
Duur lidmaatschap: ${formValues['duur']}
Bedrag: ${formValues['bedrag']}
Aanhef: ${formValues['aanhef']}
Naam: ${formValues['voornaam']} ${formValues['achternaam']}
Geboortedatum: ${formValues['geboortedatum']}
Naam zoon/dochter: ${formValues['naam']}
E-mailadres: ${formValues['email']}
Nieuwsbrief: ${formValues['nieuwsbrief']}
MOTjE: ${formValues['motje']}
Telefoonnummer: ${formValues['telefoon']}
Straat en huisnummer: ${formValues['adres']}
Postcode: ${formValues['postcode']}
Woonplaats: ${formValues['plaats']}
EOM
;
// Als je email::PLAIN verandert in email::HTML, dan kun je een HTML e-mail versturen. Denk dan wel er aan dat je <br> nodig hebt ipv \n om naar een nieuwe regel te gaan
$emailSender->set_message( $strBody, email::PLAIN );
$emailSender->set_receiver( "Ontvanger", $naar );
$result = $emailSender->send();
if ( ! ( $result instanceof PEAR_Error ) ) {
// Het is gelukt
unset($_SESSION['vriendenvan_ouders_formdata']);
print '<p>Het formulier is succesvol verzonden!</p>';
print '<p>Klik <a href="../../home.php">hier</a> om terug te gaan naar de homepagina.</p>';
}else{
// Het ging mis. Ik weet het niet zeker, maar waarschijnlijk heeft de variabele $result meer info
print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
}
}
}
?>
if (isset($_SESSION['vriendenvan_ouders_formdata'])) {
$formdata = $_SESSION['vriendenvan_ouders_formdata'];
}else{
$formdata = array();
}
?>
<html>
<form action="oudersverzenden.php" method="post">
<h2>Lidmaatschapsgegevens</h2>
<ul>
Duur lidmaatschap*<br />
<input type="radio" name="duur" value="<?=@htmlentities($formdata['duur1'])?>"/> 1 jaar (minimaal 10)<br />
<input type="radio" name="duur" value="<?=@htmlentities($formdata['duur2'])?>"/> 3 jaar (minimaal 25)<br /><br />
Bedrag (vul een bedrag in waarmee u ons wil steunen)*<br />
<input type="text" name="bedrag" value="<?= @htmlentities($formdata['bedrag']) ?>"/><br />
</ul>
<h2>Persoonsgegevens</h2>
<ul>
Aanhef*<br />
<input type="radio" name="aanhef" value="<?= @htmlentities($formdata['aanhef']) ?>"/>Dhr.<br />
<input type="radio" name="aanhef" value="<?= @htmlentities($formdata['aanhef']) ?>"/>Mw.<br /><br />
Voornaam*<br />
<input type="text" name="voornaam" value="<?= @htmlentities($formdata['voornaam']) ?>"/><br /><br />
Achternaam*<br />
<input type="text" name="achternaam" value="<?= @htmlentities($formdata['achternaam']) ?>"/><br /><br />
Geboortedatum*<br />
<input type="date" name="geboortedatum" value="<?= @htmlentities($formdata['geboortedatum']) ?>"/><br /><br />
Naam zoon/dochter*<br />
<input type="text" name="naam" value="<?= @htmlentities($formdata['naam']) ?>"/><br /><br />
</ul>
<h2>Contactgegevens</h2>
<ul>
E-mailadres*<br />
<input type="text" name="email" value="<?= @htmlentities($formdata['email']) ?>"/><br /><br />
Wilt u de nieuwsbrief (per e-mail) ontvangen?*<br />
<input type="radio" name="nieuwsbrief" value="<?= @htmlentities($formdata['nieuwsbrief']) ?>"/>Ja<br />
<input type="radio" name="nieuwsbrief" value="<?= @htmlentities($formdata['nieuwsbrief']) ?>"/>Nee<br /><br />
Wilt u het MOTjE (per e-mail) ontvangen?*<br />
<input type="radio" name="motje" value="<?= @htmlentities($formdata['motje']) ?>"/>Ja<br />
<input type="radio" name="motje" value="<?= @htmlentities($formdata['motje']) ?>"/>Nee<br /><br />
Telefoonnummer*<br />
<input type="text" name="telefoon" min="10" value="<?= @htmlentities($formdata['telefoon']) ?>"/><br /><br />
Straat en huisnummer*<br />
<input type="text" name="adres" value="<?= @htmlentities($formdata['adres']) ?>"/><br /><br />
Postcode*<br />
<input type="text" name="postcode" value="<?= @htmlentities($formdata['postcode']) ?>"/><br /><br />
Woonplaats*<br />
<input type="text" name="plaats" value="<?= @htmlentities($formdata['plaats']) ?>"/><br /><br /><br />
<input type="submit" name="versturen" value="Verstuur"/><br /><br />
</ul>
<p>Alle velden gemarkeerd met een * zijn verplicht.</p>
</form>
</html>
Controleer en verzendscript:
<?php
$naar = 'email'; // Waar moet het naartoe?
$onderwerp = 'Inschrijfformulier Vriend van BeeVee'; // Het onderwerp van het bericht
if ('POST' === $_SERVER['REQUEST_METHOD']) // Als het formulier verzonden is door op de verzend knop te klikken
{
$formValues = array(
'duur' => isset($_POST['duur']), // Alle overbodige spaties uit het voornaam veld verwijderen
'bedrag' => trim($_POST['bedrag']),
'aanhef' => isset($_POST['aanhef']),
'voornaam' => trim($_POST['voornaam']),
'achternaam' => trim($_POST['achternaam']),
'geboortedatum' => trim($_POST['geboortedatum']),
'naam' => trim($_POST['naam']),
'email' => trim($_POST['email']),
'nieuwsbrief' => isset($_POST['nieuwsbrief']),
'motje' => isset($_POST['motje']),
'telefoon' => trim($_POST['telefoon']),
'adres' => trim($_POST['adres']),
'postcode' => trim($_POST['postcode']),
'plaats' => trim($_POST['plaats'])
);
$_SESSION['vriendenvan_ouders_formdata'] = $formValues;
$errorInForm = false;
if(empty($formValues['duur']))
{
print '<p>Vul een lidmaatschapsduur in.</p>';
$errorInForm = true;
}
if(empty($formValues['bedrag']))
{
print '<p>Vul een bedrag in.</p>';
$errorInForm = true;
}
if(empty($formValues['aanhef']))
{
print '<p>Vul een aanhef in.</p>';
$errorInForm = true;
}
if(empty($formValues['voornaam']))
{
print '<p>Vul een voornaam in.</p>';
$errorInForm = true;
}
if(empty($formValues['achternaam']))
{
print '<p>Vul een achternaam in.</p>';
$errorInForm = true;
}
if(empty($formValues['geboortedatum']))
{
print '<p>Vul een geboortedatum in.</p>';
$errorInForm = true;
}
if(empty($formValues['naam']))
{
print '<p>Vul een naam van uw zoon/dochter in.</p>';
$errorInForm = true;
}
if(empty($formValues['email']))
{
print '<p>Vul een e-mailadres in.</p>';
$errorInForm = true;
}
if(!filter_var($formValues['email'], FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
{
print '<p>Vul een juist e-mailadres in.</p>';
$errorInForm = true;
}
if(empty($formValues['nieuwsbrief']))
{
print '<p>Geef aan of u de nieuwsbrief wilt ontvangen of niet.</p>';
$errorInForm = true;
}
if(empty($formValues['motje']))
{
print '<p>Geef aan of u het MOTjE wilt ontvangen of niet.</p>';
$errorInForm = true;
}
if(empty($formValues['telefoon']))
{
print '<p>Vul een telefoonnummer in.</p>';
$errorInForm = true;
}
if(empty($formValues['adres']))
{
print '<p>Vul een straat en huisnummer in.</p>';
$errorInForm = true;
}
if(empty($formValues['postcode']))
{
print '<p>Vul een postcode in.</p>';
$errorInForm = true;
}
if(empty($formValues['plaats']))
{
print '<p>Vul een woonplaats in.</p>';
$errorInForm = true;
}
if ( $errorInForm ) {
print('<p>Probeer het <a href="vriendenvanbeevee-ouders.php">hier</a> opnieuw.</p>');
}else{
$emailSender = new email();
$emailSender->set_sender( $formValues['voornaam'] . ' ' . $formValues['achternaam'], $formValues['email'] );
$emailSender->set_subject( $onderwerp );
$strBody = <<<EOM
Gegevens vriend van BeeVee (ouders)
Duur lidmaatschap: ${formValues['duur']}
Bedrag: ${formValues['bedrag']}
Aanhef: ${formValues['aanhef']}
Naam: ${formValues['voornaam']} ${formValues['achternaam']}
Geboortedatum: ${formValues['geboortedatum']}
Naam zoon/dochter: ${formValues['naam']}
E-mailadres: ${formValues['email']}
Nieuwsbrief: ${formValues['nieuwsbrief']}
MOTjE: ${formValues['motje']}
Telefoonnummer: ${formValues['telefoon']}
Straat en huisnummer: ${formValues['adres']}
Postcode: ${formValues['postcode']}
Woonplaats: ${formValues['plaats']}
EOM
;
// Als je email::PLAIN verandert in email::HTML, dan kun je een HTML e-mail versturen. Denk dan wel er aan dat je <br> nodig hebt ipv \n om naar een nieuwe regel te gaan
$emailSender->set_message( $strBody, email::PLAIN );
$emailSender->set_receiver( "Ontvanger", $naar );
$result = $emailSender->send();
if ( ! ( $result instanceof PEAR_Error ) ) {
// Het is gelukt
unset($_SESSION['vriendenvan_ouders_formdata']);
print '<p>Het formulier is succesvol verzonden!</p>';
print '<p>Klik <a href="../../home.php">hier</a> om terug te gaan naar de homepagina.</p>';
}else{
// Het ging mis. Ik weet het niet zeker, maar waarschijnlijk heeft de variabele $result meer info
print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
}
}
}
?>
Alvast super erg bedankt, ik zit hier al lang mee te struggelen.
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 18/03/2016 11:55:36 door - Ariën -
Je wilt waarschijnlijk de JA of NEE retour.
Bedankt voor je snelle antwoord. Ik heb inderdaad al geprobeerd om de value te veranderen, maar hij blijft "1" doorsturen :(
'nieuwsbrief' => isset($_POST['nieuwsbrief']),
De function isset() geeft true/false terug = 1/0.
Je pakt hier niet de value.
Als ik niet isset() gebruik, dan krijg ik na het drukken op de verzendknop een compleet witte pagina.
'nieuwsbrief' => (isset($_POST['nieuwsbrief']) ? $_POST['nieuwsbrief'] : 'Leeg'),