Mikko
Mikko

Reputation: 637

Sending boolean values with $.ajax to PHP

I post data to a PHP backend using jQuery $.ajax:

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

On the server side I tried die(gettype($_POST["testVariable"])); which returns string.

I'm trying to save the JSON data posted from Javascript to a MySQL database, but boolean values get quoted which is not what should happen.

What gets inserted is {"testVariable": "true"} and what I need is {"testVariable": true}. How do I accomplish this?

Upvotes: 5

Views: 2324

Answers (1)

rafwell
rafwell

Reputation: 499

This is the expected behavior. On PHP you need convert the string to boolean, if you need, using a ternary or the method you like. Or you can send 1/0 to represent boolean state.

Converting like that:

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

Upvotes: 2

Related Questions