Значение объекта JSON из PHP - PullRequest
2 голосов
/ 20 января 2009

Я использую JSON в PHP, и теперь мне нужно получить к нему доступ из JavaScript. Как передать объект JSON в JavaScript?

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

где My.js имеет:

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

Как я могу это сделать?

Ответы [ 3 ]

6 голосов
/ 21 января 2009

Предполагая, что вы используете Ajax в качестве метода для загрузки JSON, вы должны повторить результат json_encode:

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

    echo json_encode($array);
?>

И затем в рамках вашего события обратного вызова вы получите ответ:

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

Предполагается, что у вас есть XMLHttpRequest объект с именем req.

4 голосов
/ 19 февраля 2010
<?php
$array = array("a"=>"Caucho", "b"=>"Resin", "c"=>"Quercus");
$json = json_encode($array);
?>
<script type="text/javascript">
var myjson = <?php echo $json; ?>;
</script>
2 голосов
/ 20 января 2009

Вы можете запросить данные JSON с помощью AJAX или передать данные из PHP в JavaScript как переменную JavaScript:

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

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

edit: вам нужно проверить строку json, иначе у вас просто будет строка, а не объект ...

Конечно, учитывая все рекомендации по смешиванию PHP / HTML / JavaScript ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...