JSON object value from PHP

18,691

Solution 1

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.

Solution 2

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

Solution 3

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

Share:
18,691
venkatachalam
Author by

venkatachalam

I am a Software Enthusiast, Exploring web

Updated on June 05, 2022

Comments

  • venkatachalam
    venkatachalam almost 2 years

    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?