Контактная форма с использованием ajax в js не будет публиковаться

#javascript #php #jquery #html #ajax

#javascript #php #jquery #HTML #ajax

Вопрос:

Я создаю свой первый веб-сайт и хочу реализовать контактную форму с использованием ajax и php, но она не будет работать. Этот вопрос может показаться глупым, но, пожалуйста, не ненавидьте меня за то, что я новичок в программировании.

У вас, ребята, есть идея, что может быть не так?

Вот мой HTML-код:

    <div class="col-lg-9 col-md-9 col-xs-12">
          <div class="contact-block">
            <form id="contactForm">
              <div class="row">
                <div class="col-md-6">
                  <div class="form-group">
                    <input type="text" class="form-control" id="name" name="name" placeholder="Ihr Name" required data-error="Bitte geben Sie Ihren Namen ein">
                    <div class="help-block with-errors"></div>
                  </div>                                 
                </div>
                <div class="col-md-6">
                  <div class="form-group">
                    <input type="text" placeholder="Ihre E-Mail" id="email" class="form-control" name="name" required data-error="Bitte geben Sie Ihre E-Mail Adresse ein">
                    <div class="help-block with-errors"></div>
                  </div> 
                </div>
                <div class="col-md-12">
                  <div class="form-group">
                    <input type="text" placeholder="Betreff" id="msg_subject" class="form-control" required data-error="Please enter your subjectBitte fügen Sie einen Betreff hinzu">
                  </div>
                </div>
                <div class="col-md-12">
                  <div class="form-group"> 
                    <textarea class="form-control" id="message" placeholder="Ihre Nachricht" rows="7" data-error="Schreiben Sie eine Nachricht" required></textarea>
                    <div class="help-block with-errors"></div>
                  </div>
                  <div class="submit-button">
                    <button class="btn btn-common btn-effect" id="submit" type="submit">Nachricht senden</button>
                    <div id="msgSubmit" class="h3 hidden"></div> 
                    <div class="clearfix"></div> 
                  </div>
                </div>
              </div>            
            </form>
          </div>
        </div>
  

Это мой js-код:

     function submitForm(){
// Initiate Variables With Form Content
var name = $("#name").val();
var email = $("#email").val();
var msg_subject = $("#msg_subject").val();
var message = $("#message").val();


$.ajax({
    type: "POST",
    url: "php/form-process.php",
    data: "name="   name   "amp;email="   email   "amp;msg_subject="   msg_subject   "amp;message="   message,
    success : function(text){
        if (text == "success"){
            formSuccess();
        } else {
            formError();
            submitMSG(false,text);
        }
    }
});}
  

Это мой php-файл, в который я хочу отправить почту:

     <?php
    if($_POST){
    $name = $_POST['name'];
    $email = $_POST['email'];
    $msg_subject = $_POST['msg_subject']
    $message = $_POST['message'];

     //send email
     mail("email@gmail.com", "This is an email from:" .$email, $msg_subject, $message);}?>
  

Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать.

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

1. У вас есть какие-либо ошибки?

2. Какая часть не работает?

3. Если я нажму кнопку «отправить сообщение», ничего не произойдет, и я не знаю почему. Есть ли ошибка в моем сообщении ajax -> php

Ответ №1:

я использовал ajax с NodeJS, но я не думаю, что это должно быть допустимо url: "php/form-process.php",

попробуйте вместо этого добавить маршрут, который вы используете для обработки запроса, например

/form-process.php или /php/form-process.php или любой другой маршрут, который вы используете

если вы не добавили jquery в свой html, это тоже приведет к этому

Ответ №2:

Здесь может быть несколько вещей. Трудно сказать, не увидев больше. Вы подключили функцию submitForm() к кнопке?

Ответ №3:

Некоторые возможные причины:

Попробуйте включить библиотеку jQuery:

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  

Поместите свой код jQuery в .ready():

 $( document ).ready(function() {
  // Handler for .ready() called.
});
  

Вам нужно вызвать функцию JS submitForm() в событии отправки формы:

 $("#contactForm").on( 'submit', function(){
    submitForm();
    return false;
});
  

Убедитесь, что существует следующий URL:

 php/form-process.php
  

Исправьте параметры вашей почтовой функции:

 mail ( string $to , string $subject , string $message [, mixed $additional_headers [, string $additional_parameters ]] )