感谢各位阅读这篇文章的人! 我的网站上有一个联系表单,我希望当用户提交它时窗口不会刷新,但尽管我使用 Ajax 和 POST 方法,它仍然刷新..
这是代码(html):
<form class="form-horizontal">
<div class="form-group">
<div class="col-sm-12">
<input type="email" class="form-control" placeholder="Email" name="email" id="email" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<input type="text" class="form-control" placeholder="Complete name" name="name" id="name" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<input type="text" class="form-control" placeholder="Object" name="objet" id="object" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<textarea rows="8" class="form-control" placeholder="Your message here ..." name="message" id="message" required></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<button type="submit" class="btn btn-custom-am" id="sending_form">Envoyer mail</button>
</div>
</div>
</form>
PHP 文件:
<?php
if($_POST){
$email = $_POST['email'];
$name = $_POST['name'];
$object = $_POST['objet'];
$message = $_POST['message'];
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "From: $name <$email>\r\nReply-to : $name <$email>\nX-Mailer:PHP";
$subject="$objet";
$destinataire="my_mail@mail.com";
$body="$message";
mail($destinataire,$subject,$body,$headers);
}
?>
和 Ajax 调用:
$('#sending_form').click(function(){
var data = {
email: $('#email').val(),
name: $('#name').val(),
objet: $('#object').val(),
message: $('#message').val()
};
$.ajax({
url: "get_mail.php",
type: 'POST',
data: data,
sucess: function(msg) {
alert('Email sent');
}
});
});
我希望能为您提供所有必要的信息!
最佳答案
您应该阻止 click
事件的默认行为,即提交表单:
$('#sending_form').click(function(e){
e.preventDefault()
var data = {
email: $('#email').val(),
name: $('#name').val(),
objet: $('#object').val(),
message: $('#message').val()
};
$.ajax({
url: "get_mail.php",
type: 'POST',
data: data,
success: function(msg) {
alert('Email sent');
}
});
});
Node: the
e
variable that was added inside thefunction
parameters.
如果您不这样做 - 浏览器将执行的默认操作是提交表单(这是您想要阻止的)。
关于php - Ajax 和 PHP 表单 : window still refreshing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42261866/