tjarles tjarles - 4 months ago 10
JSON Question

JSON containing single quote causes syntaxerror

So I have data that needs to be fetched through php. This data should then be saved to a javascript variable by in the .php file echoing the value:

$json = json_encode($requirements);
echo "<script>
var myvar = '<?php echo $json; ?>';
</script>";


The data contains a single quote which gives syntax error in Chrome:

Uncaught SyntaxError: Unexpected identifier


The page source look something like by the error:

var myvar = '<?php echo {"data":{"data":{"1":{"description":"Don' t}}}}; ?>';


where the entire string up until ""Don'" is in red.

What is the right way of keeping json_encode from failing (apart from calling the data directly to js)?

Answer

You need to escape ' chars then, for example by using backslash \:

{"data":{"data":{"1":{"description":"Don\'t}}}}

Or as you are using php you can use addslashes function

Comments