this is my first time making a form, and I have multi-select option but I think I’m missing out something because the form is working but when selecting multiple options the email I receive is only showing 1 option.
<form action="send.php" method="POST"> <p>Name</p> <input type="text" name="name"> <p>Email</p> <input type="text" name="email"> <p>Services</p> <select data-placeholder="Responsible For...." multiple class="chosen-select full_width" name="service" tabindex="-1"> <option value="Medical">Medical</option> <option value="Finance">Finance</option> <option value="Construction">Construction</option> <option value="IT Services">IT Services</option> </select> <p>Message</p><textarea name="message" rows="6" cols="25"></textarea><br /> <input type="submit" value="Send"><input type="reset" value="Clear"> </form>
send.php
<?php $name = $_POST['name']; $email = $_POST['email']; $service = $_POST['service']; $message = $_POST['message']; $formcontent=" From: $name n Type: $service n Message: $message"; $recipient = "itssonu4564@gmail.com"; $subject = "Message"; $mailheader = "From: $email rn"; mail($recipient, $subject, $formcontent, $mailheader) or die("Error!"); echo "Thank You!"; ?>
Advertisement
Answer
You need to do a small change in your HTML. Add a bracket pair to the name attribute, to make PHP it recognize it as an array.
<select multiple name="service[]">
Afterwards in PHP you can use
$service = implode(', ', $_POST['service']);
To get all services as a comma separated list.