Контактная форма не отправляет выпадающее значение на PHP - PullRequest
0 голосов
/ 07 апреля 2020

Я собираю контактную форму, которая использует раскрывающееся поле для ограничения выбора выбора для пользователя. Сгенерированная электронная почта работает отлично, за исключением выпадающего поля. Наблюдая за консолью, поле вытягивается правильно, но оно не заполняется в форме PHP (например, "$ (" select # commMethod "). Val ();" возвращает все, что выбрано). Письма продолжают поступать с «неопределенным» вместо метода связи. Я знаю, что есть несколько постов о том, что формы не названы, методы не используются, входные данные не имеют флагов значений, однако у меня все они есть. Любые указатели в правильном направлении приветствуются. Это все довольно ново для меня, поэтому извиняюсь, если задаю простой вопрос.

HTML (сокращенно)

 <form name="sentMessage" id="teleForm" novalidate method="post">
        <div class="row mb-3">
          <div class="col-lg-5">
            <H2>Contact Info</H2>
            <hr>
            <!--name-->
            <div class="control-group">
              <div class="form-group col-md-12 floating-label-form-group controls">
                <legend>Full Name</legend>
                <input type="text" class="form-control" id="fullname" required
                  data-validation-required-message="Please enter your name.">
                <p class="help-block text-danger"></p>
              </div>
            </div>
            <!--phone-->
            <div class="control-group">
              <div class="form-group col-md-12 floating-label-form-group controls">
                <legend>Phone Number</legend>
                <input type="tel" class="form-control" id="phone" required
                  data-validation-required-message="Please enter a valid phone number.">
                <p class="help-block text-danger"></p>
              </div>
            </div>
            <!--communication option-->
            <filedset class="form-group">
              <div class="form-group col-md-12 floating-label-form-group controls">
                <legend>Preferred Communication platform</legend>
                <select id="commMethod" name="commMethod">
                  <option value="GoogleDuo">Google Duo</option>
                  <option value="Facebook Messenger">Facebook Messenger</option>
                  <option value="Other">Other - Input in message</option>
                </select>
              </div>
        <div id="success"></div>
        <div class="form-group">
          <!--submit button-->
          <button type="submit" class="btn btn-danger" id="sendMessageButton-tele">Request</button>
        </div>
      </form>

JS код (сокращенно)

    submitSuccess: function($form, event) {
  event.preventDefault(); // prevent default submit behaviour
  // get values from FORM
  var name = $("input#fullname").val();
  var email = $("input#email").val();
  var phone = $("input#phone").val();
  var message = $("textarea#message").val();
  var prefComm = $("select#commMethod").val();
  var commID = $("input#userid").val();
  var firstName = name; // For Success/Failure Message
  // Check for white space in name for Success/Fail message
  if (firstName.indexOf(' ') >= 0) {
    firstName = name.split(' ').slice(0, -1).join(' ');
  }
  $this = $("#sendMessageButton-tele");
  $this.prop("disabled", true); // Disable submit button until AJAX call is complete to prevent duplicate messages
  $.ajax({
    url: "././mail/contact_me_consult.php",
    type: "POST",
    data: {
      name: name,
      phone: phone,
      email: email,
      commmethod: prefComm,
      message: commID + " - " + message 
    },

PHP

    <?php
// Check for empty fields
if(empty($_POST['name'])      ||
   empty($_POST['email'])     ||
   empty($_POST['phone'])     ||
   empty($_POST['message'])   ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
   echo "No arguments Provided!";
   return false;
   }

$name = strip_tags(htmlspecialchars($_POST['name']));
$email_address = strip_tags(htmlspecialchars($_POST['email']));
$phone = strip_tags(htmlspecialchars($_POST['phone']));
$commmethod = ($_POST['commmethod']));
$message = strip_tags(htmlspecialchars($_POST['message']));

// Create the email and send the message
$to = 'xxxx@xxx.com';
$email_subject = "Consult Tele Request:  $name";
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\ncommunication method:$commmethod\n\nMessage: $message";
$headers = "From: noreply@xxxxxxx.com\n"; 
$headers .= "Reply-To: $email_address";   
mail($to,$email_subject,$email_body,$headers);
return true;         
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...