我正在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条件始终满足。
$_POST['undo_vote'] == true
帖子只是文字,文字在php中的评估结果为true。一种快速的解决方法是发送零而不是false。您也可以在PHP中用引号引起来。
if ($_POST['undo_vote'] == "true") { Photo::undo_vote($_POST['photo_id']); } else { Photo::vote($_POST['photo_id'], $_POST['vote']); }
然后,您可以传递正确/错误的文本。如果那是您的首选。