Форма для отправки по электронной почте с флажками.
Некоторые флажки имеют дополнительное поле для ввода текста. Мне нравится "прочее и больше информации"
Как я могу прикрепить текст, введенный людьми, к этим флажкам этой опции.
Это одна группа.
<form action="sendemail.php" method="POST" name="Contact Form">
<div><input type="checkbox" class="checkbox" name="check[]" value="Word of Mouth?">Word of Mouth?</div>
<div><input type="checkbox" class="checkbox" name="check[]" value="Have you seen our Sign? Where?">Have you seen our Sign? Where?<input type="text" style="float:right; width:150px;" name="sign" /></div>
<div><input type="checkbox" class="checkbox" name="check[]" value="Other.">Other. <input type="text" style="float:right; width:300px;" name="other" /></div>
<p><input type="submit" value="Submit" name="submit"></p>
А мой sendmail.php похож на:
<?php
if(isset($_POST['submit'])) {
$to = "myemail@mysite.com";
$subject = "Contact Form";
$firstname_field = $_POST['firstname'];
$lastname_field = $_POST['lastname'];
foreach($_POST['check'] as $value) {
$check_msg_0 .= " $value\n";
}
$body = "From: $firstname_field $lastname_field\n Learned about us from: \n $check_msg_0\n \n ";
echo "Data has been submitted to $to!";
mail($to, $subject, $body);
} else {
echo "Nope didn't work!";
}
?>
ОБНОВЛЕНО - Попробовал рекомендацию, но не сработал. Я не могу получить значение и текстовое поле вместе.
Пробовал это, но все еще нет результатов.
<form action="sendemail.php" method="POST" name="Contact Form">
<div><input type="checkbox" class="checkbox" name="check[]" value="Word of Mouth?">Word of Mouth?</div>
<div><input type="checkbox" class="checkbox" name="check[]" value="Other.">Other. <input type="text" style="float:right; width:300px;" name="otherwhere" /></div>
<p><input type="submit" value="Submit" name="submit"></p>
if (count($_POST['check']) > 0) {
foreach ($_POST['check'] as $value) {
if (isset($_POST['check']) && $_POST['check'] == 'Other') {
$check_msg_0 .= $value.": ".$_POST['otherwhere']."<br>";
}
else {
$check_msg_0 .= $value."<br>";
}
}
}
ОБНОВЛЕНИЕ 2 - Получил это, чтобы работать. Изменил имя моего текстового поля на «otherwhereTXT» и сделал следующее:
if (count($_POST['check']) > 0) {
foreach ($_POST['check'] as $value) {
if ($value == 'other') {
$check_msg_0 .= "Other: ".$_POST['otherwhereTXT']."<br>";
} else {
$check_msg_0 .= $value."<br>";
}
}
}