Capwiz
Capwiz

Reputation: 61

Send multiple checkbox values through $_POST via mail PHP

I am attempting to send my checkbox values through my mail form but it comes back as "None" every time. Thanks in advance for the help!

My code

<form method="post" name="sentMessage" id="contactForm" novalidate>                        
<div class="control-group form-group">
                        <div class="controls">
                        <label>Services Required:</label> <br />
                            <ul class="checkbox-grid">
                                <li><input type="checkbox" name="services[]" value="value1" /> Text 11</li>
                                <li><input type="checkbox" name="services[]" value="value2" /> Text 12</li>
                                <li><input type="checkbox" name="services[]" value="value3" /> Text 11</li>
                                <li><input type="checkbox" name="services[]" value="value4" /> Text 12</li>
                                <li><input type="checkbox" name="services[]" value="value5" /> Text 11</li>
                                <li><input type="checkbox" name="services[]" value="value6" /> Text 12</li>
                                <li><input type="checkbox" name="services[]" value="value7" /> Text 11</li>
                                <li><input type="checkbox" name="services[]" value="value8" /> Text 12</li>
                                <li><input type="checkbox" name="services[]" value="value9" /> Text 11</li>
                                <li><input type="checkbox" name="services[]" value="value10" /> Text 12</li>
                                <li><input type="checkbox" name="services[]" value="value11" /> Text 11</li>
                                <li><input type="checkbox" name="services[]" value="value12" /> Text 12</li>
                            </ul> 
                         </div>
                       </div>
<button type="submit" class="btn btn-primary">Send Message</button>
                </form>

My PHP:

 <?php
// check if fields passed are empty
if(empty($_POST['name'])        ||
   empty($_POST['email'])       ||
   empty($_POST['message'])     ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
    echo "No arguments Provided!";
    return false;
   }

$name = $_POST['name'];
$email_address = $_POST['email'];
$type = $_POST['type'];
$other = $_POST['other'];
$date = $_POST['date'];
$venue = $_POST['venue'];
$budget = $_POST['budget'];
$message = $_POST['message'];
$selectedServices  = 'None';
if(isset($_POST['services']) && is_array($_POST['services']) && count($_POST['services']) > 0){
$selectedServices = implode(', ', $_POST['services']);}

// create email body and send it    
$to = '[email protected]'; // PUT YOUR EMAIL ADDRESS HERE
$email_subject = " Contact Form:  $name"; // EDIT THE EMAIL SUBJECT LINE HERE
$email_body = "You have received a new message from your website's contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nType: $type\n\nOther: $other\n\nDate: $date\n\nVenue: $venue\n\nBudget: $budget\n\nServices: $selectedServices\n\nMessage:\n$message";
$headers = "From: [email protected]\n";
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers);
return true;            
?>

Any ideas? I've replicated this post but it doesn't seem to work for me. Adding checkboxes to PHP POST email form

edited: fixed syntax errors

Upvotes: 1

Views: 2541

Answers (2)

liza5757
liza5757

Reputation: 13

May be you missed something. Run the code. Hope you will find out your problem.

PHP Code :

if(isset($_POST['sub']) && $_POST['sub']=="Submit")
{
    $selectedServices  = 'None';

    if(isset($_POST['services']) && is_array($_POST['services']) && count($_POST['services']) > 0)
    {
    $selectedServices = implode(', ', $_POST['services']);
    }

    echo $selectedServices;


}

   <form method="post"  action="">    

        <ul class="checkbox-grid">
            <li><input type="checkbox" name="services[]" value="value1" /> Text 11</li>
            <li><input type="checkbox" name="services[]" value="value2" /> Text 12</li>
            <li><input type="checkbox" name="services[]" value="value3" /> Text 11</li>
            <li><input type="checkbox" name="services[]" value="value4" /> Text 12</li>
            <li><input type="checkbox" name="services[]" value="value5" /> Text 11</li>
            <li><input type="checkbox" name="services[]" value="value6" /> Text 12</li>
            <li><input type="checkbox" name="services[]" value="value7" /> Text 11</li>
            <li><input type="checkbox" name="services[]" value="value8" /> Text 12</li>
            <li><input type="checkbox" name="services[]" value="value9" /> Text 11</li>
            <li><input type="checkbox" name="services[]" value="value10" /> Text 12</li>
            <li><input type="checkbox" name="services[]" value="value11" /> Text 11</li>
            <li><input type="checkbox" name="services[]" value="value12" /> Text 12</li>
        </ul> 

       <input type="submit" id="sub" name="sub" value="Submit" />

       </form>

Output : value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11, value12

Upvotes: 0

Devyn Cunningham
Devyn Cunningham

Reputation: 121

It appears that you have a syntax error that is breaking the form. If I run your code wrapped in a form and run your PHP processor on the response I will get the proper result consistently. Your error is not in the code you submitted.

I just attempted and succeeded at performing this(after fixing your "email_body" syntax issue).

Edited for clarity

Upvotes: 1

Related Questions