Изменить адрес электронной почты на основе раскрывающегося списка - PullRequest
1 голос
/ 19 февраля 2020

У меня есть контактная форма со следующими полями:

  1. Имя
  2. Электронная почта
  3. Номер
  4. Отдел
  5. Сообщение

«Отдел» - это выпадающий список с семью следующими параметрами

  1. Аудиоинженерия
  2. Графика c Дизайн
  3. Musi c Производство
  4. Фотография
  5. Видеография
  6. Веб-разработка
  7. Другое

Я пытался установить Это происходит таким образом, что адрес электронной почты, на который отправляются данные, изменяется в зависимости от выпадающего списка пользователя. Например, если пользователь выбирает вариант 1 « Audio Engineering », электронное письмо будет отправлено на «audio@email.com». Если пользователь выберет вариант 2 « Graphi c Design », электронное письмо будет отправлено на «graphics@email.com» и т. Д. После отправки формы. Однако мой текущий код возвращает ошибку.

Это мой HTML.

<form method="post" action="contact.php" name="contactform" id="contactform">

      <fieldset id="contact_form">
          <label for="name">
              <input type="text" name="name" id="name" placeholder="ENTER YOUR NAME">
          </label>

          <label for="email">
              <input type="email" name="email" id="email" placeholder="ENTER YOUR EMAIL">
          </label>

          <label for="phone">
              <input type="text" name="phone" id="phone" placeholder="PHONE NUMBER">
          </label>

          <label for="department">
              <select name="department" id="department" class="cs-select cs-skin-border" required>
                  <option value="" disabled selected>DEPARTMENT</option>
                  <option value="audio">Audio Engineering</option>
                  <option value="graphics">Graphic Design</option>
                  <option value="music">Music Production</option>
                  <option value="photography">Photography</option>
                  <option value="videography">Videography</option>
                  <option value="development">Web Development</option>
                  <option value="other">Other</option>
              </select>
          </label>

          <label for="comments">
              <textarea name="comments" id="comments" placeholder="ENTER YOUR MESSAGE"></textarea>
          </label>

          <input type="submit" class="submit btn btn-default btn-black" id="submit" value="Submit">
      </fieldset>

</form>

Это фрагмент моего PHP, где я использую операторы if для изменения адресов электронной почты на основе selection.

<?php

$name       = $_POST['name'];
$email      = $_POST['email'];
$phone      = $_POST['phone'];
$dept       = $_POST['department'];
$comments   = $_POST['comments'];

if(trim($name) == '') {
    echo '<div class="error_message" style="color: #de493e; font-weight: 700;">Please enter your name. Don\'t be shy!</div>';
    exit();
} else if(trim($email) == '') {
    echo '<div class="error_message" style="color: #de493e; font-weight: 700;">Please enter your email address, so we can get back to you!</div>';
    exit();
} else if(!isEmail($email)) {
    echo '<div class="error_message" style="color: #de493e; font-weight: 700;">Invalid e-mail address, try again!</div>';
    exit();
} else if(trim($comments) == '') {
    echo '<div class="error_message" style="color: #de493e; font-weight: 700;">You forgot to enter your message!</div>';
    exit();
} 

if($dept == "audio") {
    $address = "audio@email.com"; 
} else if ($dept == "graphics") {
    $address = "graphics@email.com";
} else if ($dept == "music") {
    $address = "music@email.com";
} else if ($dept == "photography") {
    $address = "photography@email.com";
} else if ($dept == "videography") {
    $address = "videography@email.com";
} else if ($dept == "development") {
    $address = "development@email.com";
} else if ($dept == "other") {
    $address = "admin@email.com";
}

if(mail($address, $received_subject, $message, $header)) {

    // Email has sent successfully, echo a success page.

    echo "<h2>Email Sent Successfully.</h2>";
    echo "<p>Thank you <strong>$name</strong>, your message has been sent to us.</p>";
    echo "<p>We will get back to you within 24 hours!</p>";

} else {

    echo '<h2>ERROR!</h2>';

}

?>

Это, к сожалению, возвращает "ОШИБКА!" и я не уверен, почему.

Я также хотел бы вернуть сообщение об ошибке, если выбор не сделан.

1 Ответ

0 голосов
/ 19 февраля 2020

Передан параметр в функцию почты.

$name       = $_POST['name'];
$email      = $_POST['email'];
$phone      = $_POST['phone'];
$dept       = $_POST['department'];
$comments   = $_POST['comments'];

if(trim($name) == '') {
    echo '<div class="error_message" style="color: #de493e; font-weight: 700;">Please enter your name. Don\'t be shy!</div>';
    exit();
} else if(trim($email) == '') {
    echo '<div class="error_message" style="color: #de493e; font-weight: 700;">Please enter your email address, so we can get back to you!</div>';
    exit();
} else if(!isEmail($email)) {
    echo '<div class="error_message" style="color: #de493e; font-weight: 700;">Invalid e-mail address, try again!</div>';
    exit();
} else if(trim($comments) == '') {
    echo '<div class="error_message" style="color: #de493e; font-weight: 700;">You forgot to enter your message!</div>';
    exit();
} 

if($dept == "audio") {
    $address = "audio@email.com"; 
} else if ($dept == "graphics") {
    $address = "graphics@email.com";
} else if ($dept == "music") {
    $address = "music@email.com";
} else if ($dept == "photography") {
    $address = "photography@email.com";
} else if ($dept == "videography") {
    $address = "videography@email.com";
} else if ($dept == "development") {
    $address = "development@email.com";
} else if ($dept == "other") {
    $address = "admin@email.com";
}

$message = "First line of text\nSecond line of text";
$received_subject = "My subject";
if(mail($address, $received_subject, $message)) {

    // Email has sent successfully, echo a success page.

    echo "<h2>Email Sent Successfully.</h2>";
    echo "<p>Thank you <strong>$name</strong>, your message has been sent to us.</p>";
    echo "<p>We will get back to you within 24 hours!</p>";

} else {

    echo '<h2>ERROR!</h2>';

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...