我需要select将multiples中的几个值传递到一个数组中,我需要从列表中选择并全部发送到邮件中。
现在它是这样工作的:
<form>
<!-- Скрытие поля отправки -->
<input type="hidden" name="project_name" value="Student Stage">
<input type="hidden" name="admin_email" value="ss.studentstage@mail.ru">
<input type="hidden" name="form_subject" value="Заявка с формы поступления">
<!-- -->
<select name="Экзамены[]" multiple>
<option value="Русский язык">Русский язык</option>
<option value="Математика">Математика</option>
<option value="Физика">Физика</option>
<option value="Химия">Химия</option>
<option value="Биология">Биология</option>
<option value="География">География</option>
<option value="Литература">Литература</option>
<option value="История">История</option>
<option value="Обществознание">Обществознание</option>
<option value="Информатика и ИКТ">Информатика и ИКТ</option>
<option value="Иностранный язык">Иностранный язык</option>
</select>
<button>Отправить</button>
</form>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="script.js"></script>
这一切都得到验证:
$(document).ready(function() {
//E-mail Ajax Send
$("form").submit(function() {
var th = $(this);
$.ajax({
type: "POST",
url: "mail.php",
data: th.serialize()
}).done(function() {
alert("Ваша заявка была отправлена!\nОжидайте ответа в ближайшее время.");
setTimeout(function() {
// Done Functions
th.trigger("reset");
}, 1000);
});
return false;
});
});
并通过脚本发送到邮箱:
<?php
$method = $_SERVER['REQUEST_METHOD'];
//Script Foreach
$c = true;
if ( $method === 'POST' ) {
$project_name = trim($_POST["project_name"]);
$admin_email = trim($_POST["admin_email"]);
$form_subject = trim($_POST["form_subject"]);
foreach ( $_POST as $key => $value ) {
if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
$message .= "
" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
</tr>
";
}
}
} else if ( $method === 'GET' ) {
$project_name = trim($_GET["project_name"]);
$admin_email = trim($_GET["admin_email"]);
$form_subject = trim($_GET["form_subject"]);
foreach ( $_GET as $key => $value ) {
if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
$message .= "
" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
</tr>
";
}
}
}
$message = "<table style='width: 100%;'>$message</table>";
function adopt($text) {
return '=?UTF-8?B?'.Base64_encode($text).'?=';
}
$headers = "MIME-Version: 1.0" . PHP_EOL .
"Content-Type: text/html; charset=utf-8" . PHP_EOL .
'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL .
'Reply-To: '.$admin_email.'' . PHP_EOL;
mail($admin_email, adopt($form_subject), $message, $headers );
不是所有的值select都是从那里转移过来的,而只是最后一个选择的。name我正在考虑通过将值添加到数组中[]并编写如下代码来传递值:
<?php
foreach ($_GET['Экзамены'] as $selectedOption)
?>
但是我仍然不明白如何将这个数组传输到 mail.php
告诉我如何做到这一点?
PS 除了字段外select,还有几个输入在表单中发送,这里我没有插入
这是一个如何创建所需对象的示例,字段名称当然是个人喜好问题
Экзамены[],但我认为没有括号是可能的,而不是西里尔文。脚本.js:
php: