Не удается получить информацию из контактной формы с помощью php, js, ajax?

#javascript #php #html #ajax

#javascript #php #HTML #ajax

Вопрос:

У меня есть контактная форма на веб-сайте, информация из контактной формы, которую я хочу получать по электронной почте со всеми полями, заполненными пользователем, но я не могу. Что не так с кодом. Может быть, есть какой-то другой способ, которым я могу это сделать. Пожалуйста, помогите это исправить!

HTML «contact.php «:

  <html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name = "viewport" content="width=device-width, initial-scale=1">
  <title>CloudK</title>
  <link rel="stylesheet" href="styles/bootstrap-337.min.css">
  <link rel="stylesheet" href="font-awsome/css/font-awesome.min.css">
  <link rel="stylesheet" href="styles/contactsyle.css">
  <link rel="stylesheet" href="styles/stylesss.css">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
</head>


<body>
  <div class="cus-padding">
    <div class="bg-area"></div>
    <div class="container">
      <div class="row">
        <div class="col-md-7">
          <div class="contact-form">
            <h2>Связаться с Нами</h2>
            <form  action="" id="mailForm">
              <div class="row">
                <div class="col-md-6">
                  <input type="text" name="name" id="name" value="" placeholder="Имя">
                </div>

                <div class="col-md-6">
                  <input type="text" name="lastname" id="lastname" value="" placeholder="Фамилия">
                </div>
              </div>

              <div class="row">
                <div class="col-md-6">
                  <input type="tel" name="phone" id="phone" value="" placeholder="Номер Телефона">
                </div>

                <div class="col-md-6">
                  <input type="email" name="email" id="email" value="" placeholder="Электроная почта">
                </div>
                <div class="col-md-6">
                  <input type="text" name="company" id="company" value="" placeholder="Название компании">
                </div>
              </div>

              <p><textarea name="message" id="message" cols="30" rows="10"></textarea></p>
              <p><input type="submit" id="sendMail" value="Отправить"></input></p>

            </form>

            <div id="errorMess">

            </div>
  

Ниже приведен JS «formMail.js «:

 $("#sendMail").on("click", function(){
  var  name = $("#name").val().trim();
  var  lastname = $("#lastname").val().trim();
  var  email = $("#email").val().trim();
  var  phone = $("#phone").val().trim();
  var  company = $("#company").val().trim();
  var  message = $("#message").val().trim();

  if (name == ""){
    $("#errorMess").text("Введите Ваше Имя!");
    return false;
  }else if (lastname == ""){
    $("#errorMess").text("Введите Вашу Фамилию!");
    return false;
  }else if (email == ""){
    $("#errorMess").text("Введите Вашу Электроную почу!");
    return false;
  }else if (phone == ""){
    $("#errorMess").text("Введите Ваш номер телефона!");
    return false;
  }else if (company == ""){
    $("#errorMess").text("Введите название компании!");
    return false;
  }

  $("#errorMess").text("");

  $.ajax({

    url: 'ajax/mail.php',
    type: 'POST',
    cache: false,
    data: {'name':name, 'lastname':lastname, 'email':email, 'phone':phone, 'company':company, 'message':message},
    dataType: 'html',
    beforeSend: function(){
      $("#sendMail").prop("disabled", true);
    },
    success: function(data){
      if(!data)
        alert("Были ошибки, заявка не отправлена!");
      else
        $("#mailForm").trigger("reset");

      $("#sendMail").prop("disabled", false);

    }

  });

});
  

и php «mail.php «:

 <?php

  $name = $_POST['name'];
  $lasname = $_POST['lasname'];
  $email = $_POST['email'];
  $phone = $_POST['phone'];
  $company = $_POST['company'];
  $message = $_POST['message'];


  $subject = "=?utf-8?B?".base64_encode("Сообщение с Сайта")."?=";
  $headers = "From: $emailrnReply-to: $emailrnContent-type: text/html; charset=utf-8rn";

  $success = mail("emil10azizov@gmail.com", $subject, $message, $headers);
  echo $success;


 ?>;
  

Комментарии:

1. Что значит » не можешь «? Где что-то пошло не так?

2. Я ничего не получаю. Сначала я получал только $message = $ _POST[‘message’]; (поле сообщения) без имени, фамилии, телефона, теперь я ничего не получаю.

3. Итак, начните с сужения круга… Используйте консоль отладки вашего браузера, публикуются ли данные? Вы в гораздо лучшем положении для отладки этого, чем мы.

4. @ficuscr не могу понять! вот почему я это разместил.

5. Ну, только вы можете сказать нам то, что нам нужно знать. Можете ли вы сказать нам, срабатывает ли JavaScript для обработчика событий #sendMail click? И если да, включает ли генерируемый им запрос Xhr значения, которые вы хотите ОПУБЛИКОВАТЬ? Вы знаете, как проверить эти две вещи?

Ответ №1:

$lastname = $_POST[‘lastname’]; вместо $lasname = $_POST[‘lasname’]; (опечатка с t)

 $message = '<html>
               <head>
                     <title>Call me back</title>
                 </head>
             <body>
                 <p><b>Name:</b> '.$_POST['name'].'</p>
                 <p><b>LastName:</b> '.$_POST['lastname'].'</p>
                 <p><b>Phone:</b> '.$_POST['phone'].'</p>
                 <p><b>Company:</b> '.$_POST['company'].'</p>
                 <p><b>Company:</b> '.$_POST['message'].'</p>
             </body>
         </html>';

$subject = "=?utf-8?B?".base64_encode("Сообщение с Сайта")."?=";
  $headers = "From: $emailrnReply-to: $emailrnContent-type: text/html; charset=utf-8rn";

  $success = mail("emil10azizov@gmail.com", $subject, $message, $headers);
  echo $success;