所以我正在尝试使用按钮创建一个联系表单,而不是提交按钮,单击onClick = 'send()'
时运行一个功能,而在本地主机w / WAMP上它可以完美地发送电子邮件及其内容。在实时版本上,连接很好,我收到了电子邮件,但我没有得到相应的表单字段数据,即使它与我在WAMP服务器上测试时使用的代码相同。另外,在php文件的顶部我回显了POST数据,在localhost上它会说信息但是在现场,再次,它没有。
.val()
而不是.serialize()
,如下所示,但没有运气。data: {name:name, email:email...}
以及data{'name':name, 'email':email...}
任何帮助将不胜感激!
继承人的AJAX:
function send(){
var name = $("input[name=name]").serialize();
var email = $("input[name=email]").serialize();
var textarea = $("textarea").serialize();
var business = $("input[name=business]").serialize();
var website = $("input[name=website]").serialize();
alert(name);
alert(email);
alert(textarea);
alert(business);
alert(website);
$.ajax({
url: 'sendmail.php',
type: 'POST',
data: {name, email, textarea, business, website},
success: function(mydata) {
alert(mydata);
}
});
}
并且继承了PHP:
<?php
echo($_POST['name']);
// does show as output on localhost w/wamp but on live website its mute
$message=
'Full Name: '.$_POST['name'].'<br />
Email: '.$_POST['email'].'<br />
Message: '.$_POST['textarea'].'<br />
Current Website: '.$_POST['website'].'<br />
Business Name: '.$_POST['business'].'<br />
';
/* Email Sending Script */
if (!$mail->send()) {
echo $mail->ErrorInfo;
} else {
die("true");
}
?>
网络标签
答案 0 :(得分:1)
如果要发布Form的所有字段,请使用.serialize()方法。在您的代码中,您必须使用键索引传递数据,这样您就可以在服务器端脚本中使用该键获取数据的值
$.ajax({
type: "POST",
url: "sendmail.php",
dataType: "JSON",
data: $("Selector_of_Form").serialize(),
success: function(mydata){
alert(mydata);
}
});
答案 1 :(得分:0)
在发送数据之前尝试将数据编码为JSON。
$.ajax({
type: "POST",
url: "sendmail.php",
dataType: "JSON",
data: $.toJSON(postData),
success: function(mydata){
alert(mydata);
}
});
或者,JSON.stringify(postData)
答案 2 :(得分:0)
尝试这样的事情:
$.ajax({
type: "POST",
url: "sendmail.php",
dataType: "JSON",
data: {"name":name, "email":email, "textarea":textarea, "business":business, "website":business},
success: function(mydata){
alert(mydata);
}
});
答案 3 :(得分:0)
显然,我之前网站上的.htaccess文件是导致问题的原因。删除后,它就可以了。我认为它是因为我做了所以网站的所有内容都要保存1个月(来自.htaccess的脚本)以及导致它不发送的原因。