首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jQuery ajax数据中发送布尔值

在jQuery ajax数据中发送布尔值
EN

Stack Overflow用户
提问于 2013-02-06 04:57:08
回答 3查看 27.5K关注 0票数 11

我在一个Ajax调用中发送一些数据。其中一个值是设置为FALSE的布尔值。在Ajax调用的PHP脚本中,它总是被计算为TRUE。有什么想法吗?

代码语言:javascript
复制
$.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中,我检查布尔值:

代码语言:javascript
复制
if ($_POST['undo_vote'] == true) {
    Photo::undo_vote($_POST['photo_id']);
} else {
    Photo::vote($_POST['photo_id'], $_POST['vote']);
}

但始终满足$_POST['undo_vote'] == true条件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-06 05:01:36

post只是文本,在php中,text的计算结果为true。一个快速的解决办法是发送一个0而不是false。在PHP中,你也可以用引号将true括起来。

代码语言:javascript
复制
if ($_POST['undo_vote'] == "true") {
    Photo::undo_vote($_POST['photo_id']);
} else {
    Photo::vote($_POST['photo_id'], $_POST['vote']);
}

然后,您可以传入true/false文本。如果这是你喜欢的。

票数 14
EN

Stack Overflow用户

发布于 2016-10-13 17:56:40

您可以使用0和1作为undo_vote,并在php中键入cast:

JS端:

代码语言:javascript
复制
undo_vote: 0 // false

服务器端:

代码语言:javascript
复制
$undovote = (bool) $_POST['undo_vote']; // now you have Boolean true / false

if($undovote) {
    // True, do something 
} else {
   // False, do something else 
}
票数 2
EN

Stack Overflow用户

发布于 2016-08-12 15:10:04

您可以使用JSON.stringify()发送请求数据:

data : JSON.stringify(json)

并在服务器上解码:

$data = json_decode($_POST)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14716730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档