Serialize checkboxes laat niets zien
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
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
<?
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox1" value="Kantel">
<span>Kantel</span>
</label>
</div>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox2" value="Schuif">
<span>Schuif</span>
</label>
</div>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox3" value="Deuropening">
<span>Deuropening</span>
</label>
</div>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox4" value="Draai">
<span>Draai</span>
</label>
</div>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox5" value="Draai/kantel">
<span>Draai/kantel</span>
</label>
</div>
?>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox1" value="Kantel">
<span>Kantel</span>
</label>
</div>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox2" value="Schuif">
<span>Schuif</span>
</label>
</div>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox3" value="Deuropening">
<span>Deuropening</span>
</label>
</div>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox4" value="Draai">
<span>Draai</span>
</label>
</div>
<div>
<label>
<input type="checkbox" name="checkbox[]" id="checkbox5" value="Draai/kantel">
<span>Draai/kantel</span>
</label>
</div>
?>
Dit is mijn mailsript:
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
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
<?php
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));
header('Content-type: application/json');
// Enter your email address
$to = '[email protected]';
$subject = $_POST['subject'];
if($to) {
$name = $_POST['name'];
$email = $_POST['email'];
$fields = array(
0 => array(
'text' => 'Naam',
'val' => $_POST['name']
),
1 => array(
'text' => 'Email adres',
'val' => $_POST['email']
),
2 => array(
'text' => 'Adres',
'val' => $_POST['adres']
),
3 => array(
'text' => 'Afleveradres',
'val' => $_POST['afleveradres']
),
4 => array(
'text' => 'Postcode',
'val' => $_POST['postcode']
),
5 => array(
'text' => 'Plaats',
'val' => $_POST['plaats']
),
6 => array(
'text' => 'Tweede plaats',
'val' => $_POST['plaats2']
),
7 => array(
'text' => 'Telefoonnummer',
'val' => $_POST['telefoonnr']
),
8 => array(
'text' => 'Mobiel nummer',
'val' => $_POST['mobielnr']
),
9 => array(
'text' => 'Type Raam',
'val' => $_POST['checkbox']
),
10 => array(
'text' => 'Contactpersoon',
'val' => $_POST['contactpersoon']
),
11 => array(
'text' => 'Bericht',
'val' => $_POST['message']
)
);
$message = "";
foreach($fields as $field) {
$message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
}
$headers = '';
$headers .= 'From: ' . $name . ' <' . $email . '>' . "\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
if (mail($to, $subject, $message, $headers)){
$arrResult = array ('response'=>'success');
} else{
$arrResult = array ('response'=>'error');
}
echo json_encode($arrResult);
} else {
$arrResult = array ('response'=>'error');
echo json_encode($arrResult);
}
?>
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));
header('Content-type: application/json');
// Enter your email address
$to = '[email protected]';
$subject = $_POST['subject'];
if($to) {
$name = $_POST['name'];
$email = $_POST['email'];
$fields = array(
0 => array(
'text' => 'Naam',
'val' => $_POST['name']
),
1 => array(
'text' => 'Email adres',
'val' => $_POST['email']
),
2 => array(
'text' => 'Adres',
'val' => $_POST['adres']
),
3 => array(
'text' => 'Afleveradres',
'val' => $_POST['afleveradres']
),
4 => array(
'text' => 'Postcode',
'val' => $_POST['postcode']
),
5 => array(
'text' => 'Plaats',
'val' => $_POST['plaats']
),
6 => array(
'text' => 'Tweede plaats',
'val' => $_POST['plaats2']
),
7 => array(
'text' => 'Telefoonnummer',
'val' => $_POST['telefoonnr']
),
8 => array(
'text' => 'Mobiel nummer',
'val' => $_POST['mobielnr']
),
9 => array(
'text' => 'Type Raam',
'val' => $_POST['checkbox']
),
10 => array(
'text' => 'Contactpersoon',
'val' => $_POST['contactpersoon']
),
11 => array(
'text' => 'Bericht',
'val' => $_POST['message']
)
);
$message = "";
foreach($fields as $field) {
$message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
}
$headers = '';
$headers .= 'From: ' . $name . ' <' . $email . '>' . "\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
if (mail($to, $subject, $message, $headers)){
$arrResult = array ('response'=>'success');
} else{
$arrResult = array ('response'=>'error');
}
echo json_encode($arrResult);
} else {
$arrResult = array ('response'=>'error');
echo json_encode($arrResult);
}
?>
En dit is het ajax stuk dat alles serialized:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
// Ajax Submit
$.ajax({
type: "POST",
url: url,
data: $("#contact-form").serialize(),
dataType: "json",
?>
// Ajax Submit
$.ajax({
type: "POST",
url: url,
data: $("#contact-form").serialize(),
dataType: "json",
?>
(Met nog wat extra eronder voor een success message maar dat is niet echt van toepassing bij het probleem)
De brackets achter de naam bij het formulier heb ik er neergezet omdat ik las dat dat moet bij checkboxes. Nu krijg ik alleen niks te zien bij het stuk checkboxes in de mail. Als ik de brackets weghaal dan laat hij maar 1 resultaat zien, ook als er meerdere zijn aangevinkt.
Hoe kan ik alle gecheckte boxes uitlezen in de mail? De waarden staan nu in een array.
Het volgende gebruiken:
Gewijzigd op 01/12/2015 14:29:56 door Snelle Jaap
Een checkbox wordt alleen meegestuurd met de POST als ie is aangevinkt, anders niet.
Correct. Er zal dus wel even een controle met isset() toegevoegd moeten worden voor het geval iemand niets aanvinkt.
Ben van Velzen op 01/12/2015 18:55:36:
Correct. Er zal dus wel even een controle met isset() toegevoegd moeten worden voor het geval iemand niets aanvinkt.
Klopt, maar dat is alleen van toepassing als het required is om een checkbox in te vullen. Als het optioneel is maakt het niks uit lijkt me.
EDIT: ah het wordt hier juist weer geserialiseerd, never mind :).
EDIT: als dat hele ding trouwens een value van een key-value paar is, doe je er wel verstandig aan hier nog ronde haken omheen te zetten, dus 'val' => ( X ? Y : Z ).
Gewijzigd op 02/12/2015 14:44:18 door Thomas van den Heuvel