Reputation: 177
Having an issue with receiving multiple options.
I have a form and I have just implemented a checkbox into my html:
<input type="checkbox" name="bookingoptions" value="1">
<input type="checkbox" name="bookingoptions" value="2">
<input type="checkbox" name="bookingoptions" value="3">
At the moment the form uses send_booking_email.php.
<form id="booking-form" form name="bookingform" method="post" action="send_booking_email.php">
Within send_booking_email.php:
<?php
if(isset($_POST['email'])) {
$email_to = "[email protected]";
// validation expected data exists
if(!isset($_POST['bookingoptions'])) {
}
$bookingoptions = $_POST['bookingoptions']; // required
$email_message .= "Booking Options:".clean_string($bookingoptions)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<?php
}
?>
This works fine when one option is selected, however I am unable to get it to send multiple selections.
I believe it is due to:
$email_message .= "Booking Options:".clean_string($bookingoptions)."\n";
Being only able to store one value? If so is there a way around this?
Thanks in advance!
Upvotes: 0
Views: 203
Reputation: 636
<input type="checkbox" name="bookingoptions_1" value="1">
<input type="checkbox" name="bookingoptions_2" value="2">
<input type="checkbox" name="bookingoptions_3" value="3">
then next php side
$x=1;
$bookingoptions="";
while (isset($_POST['bookingoptions_' . $x])) {
if($x==1)
{
$bookingoptions .=$_POST['bookingoptions_' . $x];
}
else
{
$bookingoptions .=','.$_POST['bookingoptions_' . $x];
}
$x++;
}
Upvotes: 1
Reputation: 1100
Send the POST request as an array of booking options like this:
<input type="checkbox" name="bookingoptions[]" value="1">
Do this for all the input tags with name bookingoptions replacing bookingoptions to bookingoptions[]
Upvotes: 0
Reputation: 5679
Rename this field to bookingoptions[]
and you will get array for $_POST['bookingoptions']
<input type="checkbox" name="bookingoptions[]" value="1">
<input type="checkbox" name="bookingoptions[]" value="2">
<input type="checkbox" name="bookingoptions[]" value="3">
then implode array elements into string:
clean_string(implode(', ', $bookingoptions))
Upvotes: 4