当我尝试通过 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'];
}
我做错了什么吗?请帮忙。
最佳答案
这个:
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
变量是无害的,当然如果您想在多个地方使用它...
关于php - 将数据传递给 ajax 请求 jquery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561506/