使用$.ajax将布尔值发送给PHP

5

我使用jQuery的$.ajax将数据发送到PHP后端:

$.ajax({
    url: "server.php",
    method: "post",
    data: {
        testVariable: true
    }
});

在服务器端,我尝试了 die(gettype($_POST["testVariable"])); 这个语句,它返回了 string
我正在尝试将Javascript发布的JSON数据保存到MySQL数据库中,但是布尔值会被引用,这不是期望的结果。
插入的内容是 {"testVariable": "true"} ,但我需要的是 {"testVariable": true}。我该怎么做呢?

5
这是正常行为,你只能发送字符串而不能发送布尔值,因此在发帖时会将布尔值转换为字符串。 - adeneo
1
在 PHP 方面,您可以使用 json_decode http://php.net/manual/en/function.json-decode.php 将传入的数据解析为数组或对象。 - Loopo
1
或者在您的Ajax中发送1表示真和0表示假,并在您的PHP中将其转换为布尔值。(布尔真是原始的1,假是0(二进制)) - Timon Post
是的,发送1或0。 - Jereme
1个回答

2
这是预期的行为。在PHP中,如果需要,您需要将字符串转换为布尔值,可以使用三元运算符或您喜欢的方法。或者您可以发送1/0来表示布尔状态。
像这样进行转换:
$testVariable = ($_POST['testVariable'] === 'true'); //return the boolean evaluation of expression

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接