【发布时间】:2013-01-20 22:08:51
【问题描述】:
我在 Ajax 调用中发送一些数据。其中一个值是设置为 FALSE 的布尔值。在 Ajax 调用的 PHP 脚本中,它总是被评估为 TRUE。有任何想法吗?
$.ajax({
type: "POST",
data: {photo_id: photo_id,
vote: 1,
undo_vote: false}, // This is the important boolean!
url: "../../build/ajaxes/vote.php",
success: function(data){
console.log(data);
}
});
在上面Ajax中调用的脚本vote.php中,我检查了布尔值:
if ($_POST['undo_vote'] == true) {
Photo::undo_vote($_POST['photo_id']);
} else {
Photo::vote($_POST['photo_id'], $_POST['vote']);
}
但$_POST['undo_vote'] == true 条件总是满足的。
【问题讨论】:
-
你试过
if ($_POST['undo_vote'] == 'true') {吗? (我希望请求参数以字符串形式接收,除非您在测试各个属性之前传递 JSON 字符串并在服务器端解析它。) -
是的,变量以字符串形式发布。测试字符串“false”总是正确的。
-
n 是对的。所有 GET/POST 参数均为字符串,
"false"为真值。 -
可以在这里找到一个好的答案:stackoverflow.com/a/20463398/2311074
标签: php jquery ajax json boolean