当我尝试通过ajax发送数据时,它没有传递数据
$('#savenew').click(function () {
var user = <?php echo $user?>;
$.ajax({
type: "POST",
url: "actions/sub.php",
data: user,
success: function () {
$('#savenew').html('<span>Unsubscribe</span>');
$(this).removeAttr('id');
$(this).attr('id', 'clean');
}
});
});
我的PHP代码在接收端,
if ($_POST['user']) {
$user = $_POST['user'];
}
我做错了吗?请帮忙。
答案 0 :(得分:3)
此:
data: user,
应该是
data: {user: user},
因为您正在寻找名为“user”的POST变量并使用其值。 jQuery将接受一个对象文字,并使用属性名称作为键并将属性值作为值将其序列化为POST数据。使用对象(文字或其他)的好处是,然后jQuery处理为您执行值的编码。您可以使用字符串(data: "user=" + user
),但是您必须担心自己为字符串参数执行encodeURIComponent
部分(不需要这个数字)。
您也可以在一个中完成所有操作,客户端没有user
变量:
$('#savenew').click(function(){
$.ajax({
type: "POST",
url: "actions/sub.php",
data: {user: <?php echo $user?>},
success: function(){
$('#savenew').html('<span>Unsubscribe</span>');
$(this).removeAttr('id');
$(this).attr('id', 'clean');
}
});
});
...虽然user
变量客户端是无害的,当然如果你想在不止一个地方使用它......