venkatachalam
venkatachalam

Reputation: 102439

JSON object value from PHP

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?

Upvotes: 2

Views: 18726

Answers (3)

Gavin
Gavin

Reputation: 6394

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.

Upvotes: 6

Urszula Karzelek
Urszula Karzelek

Reputation: 556

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

Upvotes: 4

Jan Hančič
Jan Hančič

Reputation: 53929

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...

Upvotes: 2

Related Questions