Javascript jquery-在Ajax调用中从my.html页面更改为.php 问题
当我使用PHP函数发送电子邮件时,一切都很好。但是,我不希望页面刷新,因此我以以下方式使用ajax: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="
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);
?>