我正在使用AJAX(jQuery)向PHP脚本提交表单。
这是JavaScript:
// Validate form fields
$(function () {
//Check to see if email is not empty
if (email == "") {
$("label#email_error").show();
$("input#email").focus();
return false;
}
var dataString = 'firstname=' + firstname + '&email=' + email + '&lastname=' + lastname;
$.ajax({
type: "POST",
url: "/",
data: dataString,
success: function () {
var counter = <?php echo($counter['count'] + 1); ?>
counter = numberWithCommas(counter);
$('#counter').html(counter);
$('#contact_form').html("<div id='message'></div>").fadeIn(1500, function () {
$('#message').html("<h2>Thanks " + (firstname) + "!</h2>").append("<p>We will be in touch soon.</p>");
});
}
});
return false;
});
在PHP脚本中我有这段代码:
if (!empty($_POST)){
$adestra = $this->adestraAction('contact.create' , array('1', array('1.email' => $_POST['email'] , '1.forename' => $_POST['firstname'] , '1.surname' => $_POST['lastname'],'1.source' => 'signupbox' )));
$add = $this->addToListAction($adestra, $magazineID);
}
$ _POST变量似乎没有被设置。有人可以帮忙吗?
答案 0 :(得分:2)
data: dataString : dataString,
这是语法错误。我猜你真的想要:
data: dataString,
答案 1 :(得分:1)
jQuery POST请求中的数据必须是Javascript对象。
将其更改为:
data: {
'key' : 'value'
}
或者,如果dataString已经格式化为查询字符串,请参阅Rocket的答案。
答案 2 :(得分:0)
请在此行之后调试/警告dataString
var dataString = 'firstname=' + firstname + '&email=' + email + '&lastname=' .....
查看是否正确填充了所有值?这可能是问题