将表单提交到电子邮件后,我收到 2 封电子邮件,而不是 1 封,我该如何修复它?我只需要一封信发送到电子邮件
js:
app.controller('threeCtrl',function($scope){
$("#subBusinessOne").click(function() {
var url = "businessFormOne.php";
$.ajax({
type: "POST",
url: url,
data: $("form#businessFormOne").serialize(),
success: function(data)
{
var name = $("input[name=name]").val("");
var rel= $("input[name=phone]").val("");
}
});
return false; // avoid to execute the actual submit of the form.
});
});
php:
<?php
$ToEmail = 'myemail.com';
$EmailSubject = 'Охрана бизнес-обьектов';
$mailheader = "From: ".$_POST["email"]."\r\n";
$MESSAGE_BODY = "Имя: ".$_POST["name"]."";
$MESSAGE_BODY .= "Телефон: ".$_POST["phone"]."";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?>
最佳答案
我猜#subBusinessOne
是一个表单提交按钮。您正在发送 AJAX 请求,然后作为普通 HTTP 请求再次提交表单。
您应该检查表单是否已提交,然后阻止默认操作并发送 AJAX 请求,而不是检测按钮单击事件。你的 JS 代码将如下所示:
app.controller('threeCtrl',function($scope){
$("#businessFormOne").submit(function(e) {
e.preventDefault(); // this is to avoid the actual submit
var url = "businessFormOne.php";
$.ajax({
type: "POST",
url: url,
data: $("form#businessFormOne").serialize(),
success: function(data)
{
var name = $("input[name=name]").val("");
var rel= $("input[name=phone]").val("");
}
});
});
});
关于javascript - 向电子邮件提交表格后,我收到 2 封电子邮件,而不是 1 封,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38915642/