Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery-在Ajax调用中从my.html页面更改为.php 问题_Javascript_Php_Ajax_Forms - Fatal编程技术网

Javascript jquery-在Ajax调用中从my.html页面更改为.php 问题

Javascript jquery-在Ajax调用中从my.html页面更改为.php 问题,javascript,php,ajax,forms,Javascript,Php,Ajax,Forms,当我使用PHP函数发送电子邮件时,一切都很好。但是,我不希望页面刷新,因此我以以下方式使用ajax: reservation.html <form class="form-horizontal" method="post" action="mailer.php" id="submitForm"> <div class="form-group"> <label for="name" class="

当我使用PHP函数发送电子邮件时,一切都很好。但是,我不希望页面刷新,因此我以以下方式使用ajax:

reservation.html

    <form class="form-horizontal"
      method="post" 
      action="mailer.php"
      id="submitForm">

    <div class="form-group">
        <label for="name" class="cols-sm-2 control-label">Your Name</label>
        <div class="cols-sm-10">
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-user fa" aria-hidden="true"></i></span>
                <input type="text" class="form-control" name="name" id="userName"  placeholder="Enter your Name"/>
            </div>
        </div>
    </div>

    <div class="form-group">
        <label for="email" class="cols-sm-2 control-label">Your Email</label>
        <div class="cols-sm-10">
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-envelope fa" aria-hidden="true"></i></span>
                <input type="text" class="form-control" name="email" id="userEmail"  placeholder="Enter your Email"/>
            </div>
        </div>
    </div>

    <hr style="border-color:black;">

    <div class="form-group ">
        <button id="sendEmailButton"
                type="submit" 
                class="btn btn-primary btn-lg btn-block login-button"
                style="background-color:#483D8B;border-color:none;">Register</button>
    </div>
</form>


<script type="text/javascript">

    $(document).ready(function(){

        $('#submitForm').submit(function(e){

            e.preventDefault(); // Prevent Default Submission

            $.ajax({
                url: 'mailer.php',
                type: 'POST',
                data: $(this).serialize(), // it will serialize the form data
                dataType: 'html'
                })
            .done(function(data){
             $('#submitForm').fadeOut('slow', function(){ 
                  $('#submitForm').fadeIn('slow').html(data);
                });
            })
            .fail(function(){
                 alert('Ajax Submit Failed ...'); 
            });
            e.preventDefault(); 
        });
   });

});
</script>
诊断
因此,当我点击提交按钮时,页面从
www.bmconrad.webutu.com/html/reservation.html
变为
www.bmconrad.webutu.com/html/mailer.php
。我已经让网站在这种状态下运行,任何人都可以看一看,帮助我理解我遗漏了什么,或者什么是最好的方法。感谢您的所有意见

这是因为javascript代码中有错误。当js代码中出现错误时,preventDefault()将失败,表单将以标准方式运行并重定向到action方法


只需删除最后一个额外的
})应该可以工作。

控制台中是否有任何消息?看起来javascript没有被执行,您是否在显示的javascript上面包含了jQuery?
<?php

    $theName = $_POST["name"];
    $theEmail = $_POST["email"];
    $to = $theEmail;
    $subject = "Hi, ". $theName."!";
    $txt = "All the details ... ";
    $headers = "From: yay@blakes.graduation.com" . "\r\n";

    //mail($to,$subject,$txt,$headers);
?>