Контактная форма с использованием ajax в JS не будет POST - PullRequest
2 голосов
/ 13 апреля 2019

Я создаю свой первый веб-сайт и хочу создать контактную форму, используя 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 + "&email=" + email + "&msg_subject=" + msg_subject + "&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);}?>

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

Ответы [ 3 ]

1 голос
/ 13 апреля 2019

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

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

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

если вы не добавили jquery в ваш html, это также вызвало бы это

0 голосов
/ 13 апреля 2019

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

Попробуйте включить библиотеку 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 :

mail ( string $to , string $subject , string $message [, mixed $additional_headers [, string $additional_parameters ]] ) 
0 голосов
/ 13 апреля 2019

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

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