Tôi đang gửi một số dữ liệu trong một cuộc gọi Ajax. Một trong các giá trị là một boolean được đặt thành FALSE. Nó luôn được đánh giá là TRUE trong kịch bản lệnh PHP được Ajax gọi. Ý tưởng nào?Gửi giá trị boolean trong dữ liệu jQuery ajax
$.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);
}
});
Trong vote.php, kịch bản đó được gọi là ở trên Ajax, tôi kiểm tra giá trị boolean:
if ($_POST['undo_vote'] == true) {
Photo::undo_vote($_POST['photo_id']);
} else {
Photo::vote($_POST['photo_id'], $_POST['vote']);
}
Nhưng điều kiện $_POST['undo_vote'] == true
được LUÔN đáp ứng.
Các bạn đã thử 'nếu ($ _POST ['undo_vote'] == 'true') {'? (Tôi mong đợi các tham số yêu cầu được nhận dưới dạng chuỗi trừ khi bạn chuyển một chuỗi JSON và phân tích cú pháp phía máy chủ trước khi kiểm tra các thuộc tính riêng lẻ.) – nnnnnn
Có, các biến được đăng dưới dạng chuỗi. Thử nghiệm cho chuỗi "false" luôn đúng. – showdev
n là đúng. Tất cả các tham số GET/POST là các chuỗi và '" false "' là một giá trị trung thực. –