2016-11-16 55 views
2

我發佈的數據使用jQuery $.ajax一個PHP後端:

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

在服務器端,我想die(gettype($_POST["testVariable"]));返回string

我試圖保存從Javascript發佈到MySQL數據庫的JSON數據,但布爾值得到引用,這不是應該發生。

插入的是{"testVariable": "true"},我需要的是{"testVariable": true}。我該如何做到這一點?

+5

這是正常的行爲,你真的可以只發送字符串,而不是布爾值,所以貼 – adeneo

+1

在PHP端時,布爾值轉換爲字符串,您可以使用json_decode HTTP:/ /php.net/manual/en/function.json-decode.php將傳入的數據解析爲數組或對象。 – Loopo

+0

或在jor ajax中發送1作爲true和0作爲false,並將其轉換爲php中的布爾值。 (boolean true是原始的1和假的0(二進制)) –

回答

0

這是預期的行爲。在PHP中,您需要將字符串轉換爲布爾值(如果需要),使用三元或您喜歡的方法。或者你可以發送1/0來表示布爾狀態。

轉換這樣的:

$testVariable = ($_POST['testVariable'] === 'true'); //return the boolean evaluation of expression