0

How do I get the values of php checkboxes in a form to show when emailed to the recipient? I am learning how to use php but I can't figure this one out with the form i have generated.

Below is the checkbox code from the form itself:

<input type="checkbox" value="Please send me a Travel Planner" name="options[]">
<input type="checkbox" value="Please send me a Visitor Map" name="options[]" />
<input type="checkbox" value="Please sign me up for the email newsletter" name="options[]" />

Now here's the form code from the feedback page that processes it:

#<?php
// ------------- CONFIGURABLE SECTION ------------------------
 
// $mailto - set to the email address you want the form
// sent to, eg
//$mailto       = "[email protected]" ;
 
$mailto = '[email protected]' ;
 
// $subject - set to the Subject line of the email, eg
//$subject  = "Feedback Form" ;
 
$subject = "Request For Visitor Guide" ;
 
// the pages to be displayed, eg
//$formurl      = "http://www.example.com/feedback.html" ;
//$errorurl     = "http://www.example.com/error.html" ;
//$thankyouurl  = "http://www.example.com/thankyou.html" ;
 
$formurl = "http://www.example.com/requestform_mtg.php" ;
$errorurl = "http://www.example.com/error.php" ;
$thankyouurl = "http://www.example.com/thankyou.php" ;
 
$email_is_required = 1;
$name_is_required = 1;
$address_is_required = 1;
$contactname_is_required = 1;
$city_is_required = 1;
$zip_is_required = 1;
$phone_is_required = 1;
$uself = 0;
$use_envsender = 0;
$use_webmaster_email_for_from = 1;
$use_utf8 = 1;
 
// -------------------- END OF CONFIGURABLE SECTION ---------------
 
$headersep = (!isset( $uself ) || ($uself == 0)) ? "\r\n" : "\n" ;
$content_type = (!isset( $use_utf8 ) || ($use_utf8 == 0)) ? 'Content-Type: text/plain; charset="iso-8859-1"' : 'Content-Type: text/plain; charset="utf-8"' ;
if (!isset( $use_envsender )) { $use_envsender = 0 ; }
$envsender = "-f$mailto" ;
$name = $_POST['name'] ;
$contactname = $_POST['contactname'] ;
$title = $_POST['title'] ;
$email = $_POST['email'] ;
$address = $_POST['address'] ;
$city = $_POST['city'] ;
$state = $_POST['state'] ;
$zip = $_POST['zip'] ;
$fax = $_POST['fax'] ;
$phone = $_POST['phone'] ;
$mtgname = $_POST['mtgname'] ;
$dates = $_POST['dates'] ;
$attendance = $_POST['attendance'] ;
$guestroom = $_POST['guestroom'] ;
$mtgroom = $_POST['mtgroom'] ;
$timeframe = $_POST['timeframe'] ;
$options = $_POST['options'] ;
$comments = $_POST['comments'] ;
$http_referrer = getenv( "HTTP_REFERER" );
 
if (!isset($_POST['email'])) {
    header( "Location: $formurl" );
    exit ;
}
if (($email_is_required && (empty($email) || !ereg("@", $email))) || ($name_is_required && empty($name)) || ($address_is_required && empty($address)) || ($contactname_is_required && empty($contactname)) || ($city_is_required && empty($city)) || ($zip_is_required && empty($zip)) || ($phone_is_required && empty($phone))) {
    header( "Location: $errorurl" );
    exit ;
}
if ( ereg( "[\r\n]", $name ) || ereg( "[\r\n]", $email ) || ereg( "[\r\n]", $address ) || ereg( "[\r\n]", $contactname ) ) {
    header( "Location: $errorurl" );
    exit ;
}
if (empty($email)) {
    $email = $mailto ;
}
$fromemail = (!isset( $use_webmaster_email_for_from ) || ($use_webmaster_email_for_from == 0)) ? $email : $mailto ;
 
if (get_magic_quotes_gpc()) {
    $comments = stripslashes( $comments );
}
 
$messageproper =
    "This message was sent from:\n" .
    "$http_referrer\n" .
    "------------------------------------------------------------\n" .
    "Organization Name: $name\n" .
    "Contact Name: $contactname\n" .   
    "Email of sender: $email\n" .
    "Address of sender: $address\n" .
    "City of sender: $city\n" .
    "State of sender: $state\n" .
    "Zip Code of sender: $zip\n" . 
    "Fax of sender: $fax\n" .   
    "Phone of sender: $phone\n" .
    "Meeting Name: $mtgname\n" .           
    "Preferred Dates: $dates\n" .          
    "Expected Attendance: $attendance\n" .         
    "Guest Rooms: $guestroom\n" .
    "Largest Meeting Room Needed: $mtgroom\n" .            
    "Decision Timeframe: $timeframe\n" .   
    "Options: $options\n" .                            
    "------------------------- COMMENTS -------------------------\n\n" .
    $comments .
    "\n\n------------------------------------------------------------\n" ;
$headers =
   "From: \"$name\" <$fromemail>" . $headersep . "Reply-To: \"$name\" <$email>" . $headersep . "X-Mailer: chfeedback.php 2.13.0" .
    $headersep . 'MIME-Version: 1.0' . $headersep . $content_type ;
 
if ($use_envsender) {
    mail($mailto, $subject, $messageproper, $headers, $envsender );
}
else {
    mail($mailto, $subject, $messageproper, $headers );
}
header( "Location: $thankyouurl" );
exit ;
 
?>

All I get via email for the checkboxes is "array".

Thanks

Update:

Just noticed I get these errors if I DON'T select a checkbox and submit:

Warning: implode() [function.implode]: Invalid arguments passed in /home/content/o/l/t/oltvcb/html/feedback_mtg.php on line 148

Warning: Cannot modify header information - headers already sent by (output started at /home/content/o/l/t/oltvcb/html/feedback_mtg.php:148) in /home/content/o/l/t/oltvcb/html/feedback_mtg.php on line 162

I did notice that the form data actually came through in my email.

5 Answers 5

2

$options is an array. Try imploding it.

$options = implode(', ', $options);
Sign up to request clarification or add additional context in comments.

Comments

2

Checkboxes are treated as an array when they are submitted.

foreach($options as $option) {
  print $option."\n";
}

or

print implode("\n", $options);

Comments

2

Here's a suggestion. Instead of this:

"Options: $options\n" .  

Try this:

"Options:".implode("\n",$options)."\n".

There's always the possibility that no array of $options will exist (no check boxes were checked). In this case, you can do something like:

"Options:".(isset($options) ? implode("\n",$options) : "")."\n".

1 Comment

Please check my latest "answer". Not really an answer but a question for you. thanks.
1
$options = join(', ', $_POST['options']);

Comments

0

First, you need to get rid of your "[ ]" in the name of your variable for the HTML checkboxes.

If you name it "options" when it is submitted to the processing page it comes through as an array.

From that point, you now have an array of the values selected.

$_POST['options']

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.