Rob
Rob

Reputation: 6370

Checkbox value not appearing in email

I've created a form that submits details via an email but for some reason the checkbox results aren't showing up, can anyone see why?

<tr>
  <td valign="top"><p>Contact Method:</p></td>
  <td>&nbsp;</td>
  <td align="left" valign="top"><p>
      <input style="width:20px!IMPORTANT;" type="checkbox" name="CheckboxGroup1[]" value="Phone" id="phone" />
      <label style="margin-right: 25px;">Phone</label>
    </p>
    <p>
      <input style="width:20px!IMPORTANT;" type="checkbox" name="CheckboxGroup1[]" value="Email" id="email" />
      <label style="margin-right: 25px;">Email</label>
    </p>
    <p>
      <input style="width:20px!IMPORTANT;" type="checkbox" name="CheckboxGroup1[]" value="Post" id="post" />
      <label style="margin-right: 25px;">Post</label>
    </p></td>
</tr>

I'm then using this to submit:

<? if(isset($_POST['submit'])) { 

$to = "[email protected]";
$header = 'From: [email protected]';
$subject = "Website enquiry";
$companyname_field = $_POST['companyname'];
$fullname_field = $_POST['fullname'];
$email_field = $_POST['email'];
$tel_field = $_POST['tel'];
$address_field = $_POST['address'];
$specify_field = $_POST['specify'];
$CheckboxGroup1 = $_POST['CheckboxGroup1'];
$CheckboxGroup2 = $_POST['CheckboxGroup2'];
if( is_array($_SESSION['CheckboxGroup1']) ){
    foreach ($_SESSION['CheckboxGroup1'] as $val) {
        $checkbox1results .= $val.",\n";
    }
}
if( is_array($_SESSION['CheckboxGroup2']) ){
    foreach ($_SESSION['CheckboxGroup2'] as $val) {
        $checkbox2results .= $val.",\n";
    }
}


$body = "Hello,\n\n You have an enquiry from the website, please see the details below:\n\n Name: $fullname_field\n Company Name: $companyname_field\n E-Mail: $email_field\n Tel: $tel_field\n Method of contact: $checkbox1results\n Address: $address_field\n Hear about us?: $checkbox2results\n Specify: $specify_field\n\n Please reply to the enquiry asap.\n\n Kind Regards \n";

mail($to, $subject, $body, $header);

echo "</br><p style=\"color:#e41770!IMPORTANT;\">Thank you for getting in touch, we will contact you shortly.</p>";

} ?>

Upvotes: 0

Views: 311

Answers (3)

Mina Abadir
Mina Abadir

Reputation: 2981

Use that code instead

if( is_array($CheckboxGroup1) ){
foreach ($CheckboxGroup1 as $val) {
    $checkbox1results .= $val.",\n";
 }
}
if( is_array($CheckboxGroup2) ){
   foreach ($CheckboxGroup2 as $val) {
    $checkbox2results .= $val.",\n";
}

Upvotes: 0

xdazz
xdazz

Reputation: 160833

You get the value from the $_POST, but you check the value in $_SESSION.

Upvotes: 1

WatsMyName
WatsMyName

Reputation: 4478

where is $_SESSION['CheckboxGroup1'] declared? Seeing your code this should be $_POST['CheckboxGroup1']

Upvotes: 2

Related Questions