在JS中使用Ajax的联系表格不会发布

时间:2019-04-13 14:57:02

标签: 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 + "&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 个答案:

答案 0 :(得分:1)

我在使用带有nodeJs的ajax,但我认为这url: "php/form-process.php",不正确

尝试添加您用于处理类似请求的路由

/form-process.php/php/form-process.php或您使用的任何路线

如果您还没有将jQuery添加到您的html中

答案 1 :(得分:0)

这里可能发生了一些事情。看不见就很难说。您是否已将commitForm()函数附加到按钮上?

答案 2 :(得分:0)

一些可能的原因:

尝试加入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;
});

确保存在以下网址:

php/form-process.php

修复您的mail函数参数:

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