我在一个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条件。
发布于 2013-02-06 05:01:36
post只是文本,在php中,text的计算结果为true。一个快速的解决办法是发送一个0而不是false。在PHP中,你也可以用引号将true括起来。
if ($_POST['undo_vote'] == "true") {
Photo::undo_vote($_POST['photo_id']);
} else {
Photo::vote($_POST['photo_id'], $_POST['vote']);
}然后,您可以传入true/false文本。如果这是你喜欢的。
发布于 2016-10-13 17:56:40
您可以使用0和1作为undo_vote,并在php中键入cast:
JS端:
undo_vote: 0 // false服务器端:
$undovote = (bool) $_POST['undo_vote']; // now you have Boolean true / false
if($undovote) {
// True, do something
} else {
// False, do something else
}发布于 2016-08-12 15:10:04
您可以使用JSON.stringify()发送请求数据:
data : JSON.stringify(json)
并在服务器上解码:
$data = json_decode($_POST);
https://stackoverflow.com/questions/14716730
复制相似问题