繁体   English   中英

jquery - 在 Ajax 调用中,页面从我的 .html 更改为 .php

[英]jquery - Page changes to .php from my .html on Ajax call

问题

当我使用 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>

mailer.php

<?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);
?>  

诊断

所以当我点击提交按钮时,页面从www.bmconrad.webutu.com/html/reservation.html变为www.bmconrad.webutu.com/html/mailer.php 我已经让网站在这种状态下运行,以便任何可以查看并帮助我了解我缺少什么或这样做的最佳方法的人。 感谢您的任何/所有输入。

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

只需删除最后一个额外的}); 应该管用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM