2

I am using JSON in PHP, and now I need to access it from JavaScript. How do I pass a JSON object to JavaScript?

<?php
    $array = array("a"=>"Caucho", "b"=>"Resin", "c"=>"Quercus");
    $json = json_encode($array);
>

where My.js has:

showAll(){
    alert("Show All Json Objects");
    // How do I get the JSON value here?
}

How can I do it?

3 Answers 3

6

Assuming that you're using Ajax as your method to download the JSON, you would echo the result of the json_encode:

<?php
    $array = array("a"=>"Caucho", "b"=>"Resin", "c"=>"Quercus");

    echo json_encode($array);
?>

And then within your call back event, you'd eval the response:

var obj = eval('(' + req.ResponseText + ')');
for(var i in obj) {
    alert(i + ': ' + obj[i]);
}

Assuming that you have an XMLHttpRequest object with the name req.

Sign up to request clarification or add additional context in comments.

Comments

4
<?php
$array = array("a"=>"Caucho", "b"=>"Resin", "c"=>"Quercus");
$json = json_encode($array);
?>
<script type="text/javascript">
var myjson = <?php echo $json; ?>;
</script>

1 Comment

Actually this is the best answer of all, you can put JSON data directly in javascript like in answer, it's documented on official json page. Thanks.
2

You could request the JSON data with AJAX or you could pass the data from PHP to JavaScript as a JavaScript variable:

$array = array("a"=>"Caucho", "b"=>"Resin", "c"=>"Quercus");
$json = json_encode($array);

echo '<script type="text/javascript">';
echo 'var myJson = "' . $json . '";';
echo '</script>';

edit: you have to eval the json string, otherwise you will just have a string not a object...

Off course keeping in mind all the guidelines about mixing PHP/HTML/JavaScript...

1 Comment

I would submit a +1 for doing it via ajax instead, since you can then simply eval the returned json snippet and you don't have to worry about mixing php/javascript/html.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.