Hm HTML-часть выглядит нормально, но попробуйте исправить это:
function emailtotest($to) {
if (strip_tags($_POST['sector']) == 'value1') {
$to = 'email1@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value2') {
$to = 'email2@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value3') {
$to = 'email3@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value4') {
$to = 'email4@domain.com';
} else {
$to = 'email5@domain.com';
}
return $to;
}
Так что вместо $ to. = "Email ..";используйте только $ to = "email";так что без точки перед =
Почему?
Потому что если вы используете. =, Это означает, что вы добавляете значение к существующему значению.Например, если $ to уже содержит это значение: email@email.com, а затем вы используете $ to. = "Email1@email.com";тогда $ to будет содержать ОБА значения и будет выглядеть так: email @ email.comemail1 @ email.com Что не совсем нормально.Другое (то же самое) решение также таково:
function emailtotest($to) {
if (strip_tags($_POST['sector']) == 'value1') {
return 'email1@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value2') {
return 'email2@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value3') {
return 'email3@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value4') {
return 'email4@domain.com';
} else {
return 'email5@domain.com';
}
}
Это одно и другое, старайтесь НЕ использовать $ _POST в функциях, даже если они глобальные.Получите значение из примера $ _POST:
$which = trim(strip_tags($_POST['sector'])); //get your checkbox value
А затем вызовите функцию и возьмите в нее $, например:
$to_email = emailtotest($which); //call a function and take $which - value1, value2...
mail($to_email, "subject", "email txt"); //then send a mail to $to_email
function emailtotest($value){
if($value=='value1'){
return 'email1@domain.com';
}
else if ($value=='value2'){
return 'email2@domain.com'
.....
....
}