Ik heb een contactformulier die een paar checkboxes heeft. Het formulier post gewoon, alles werkt. Alleen post hij de checkboxes niet. Dit is wat ik nu heb.
<?
<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:
<?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);
}
?>
En dit is het ajax stuk dat alles serialized:
<?
// 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.
2.127 views