我正在使用以下代码。这是提交与PHP的罚款,它似乎成功ajax行动...实施AJAX后,并提交了一封电子邮件......但在电子邮件中没有显示电子邮件数据,它是空白....
HTML
<form id="sForm" action="submit.php" method="get">
<label>your e-mail: </label>
<input type="text" name="email"></input>
<input id="sub" type="submit" />
</form>
<div id="message_ajax"></div>
<div id="error"></div>
的jQuery
$("#sub").click(function(){
var datastr = 'email'
$.ajax({
type: 'GET',
url: 'submit.php',
data: datastr,
beforeSend:function(){
$('#message_ajax_wait').append('Loading...');
},
success:function(data){
$('#message_ajax_wait').fadeOut(400);
$("#message_ajax_done").append('done!');
},
error:function(){
$('#error').append('sigh... lets fix... or its server fault');
}
});
return false;
});
看,我删除了“return false;”它可以在电子邮件收件箱中显示电子邮件数据,但是AJAX响应不起作用,并重定向到丑陋的php页面,作为submit.php编码发送电子邮件。
任何人都可以帮助我吗?
答案 0 :(得分:1)
尝试将数据对象设置为
var data = {email:$("input[name=email]").val()};
$.ajax({
type: 'GET',
url: 'submit.php',
data: data,
beforeSend:function(){
....
};
答案 1 :(得分:1)
您可以使用.serialize()方法轻松发布表单中的所有字段。所以在你的情况下:
var datastr = $("#sForm").serialize();
或者不先将其添加到字符串中:
$.ajax({
type: 'GET',
url: 'submit.php',
data: $("#sForm").serialize(),
beforeSend:function(){
....
};
答案 2 :(得分:1)
您在AJAX请求中发送了错误的数据。如果将var datastr = 'email';
更改为var datastr = 'email=' . $('#email').val();
并将id="email"
添加到电子邮件输入中,则应该有效。