【问题标题】:JSON object value from PHP来自 PHP 的 JSON 对象值
【发布时间】:2010-10-02 09:34:10
【问题描述】:

我在 PHP 中使用 JSON,现在我需要从 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?
}

我该怎么做?

【问题讨论】:

    标签: php javascript ajax json


    【解决方案1】:

    假设您使用 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]);
    }
    

    假设您有一个名为 reqXMLHttpRequest 对象。

    【讨论】:

      【解决方案2】:
      <?php
      $array = array("a"=>"Caucho", "b"=>"Resin", "c"=>"Quercus");
      $json = json_encode($array);
      ?>
      <script type="text/javascript">
      var myjson = <?php echo $json; ?>;
      </script>
      

      【讨论】:

      • 实际上这是最好的答案,您可以像在答案中一样直接将 JSON 数据放入 javascript 中,它记录在 official json page 上。谢谢。
      【解决方案3】:

      您可以使用 AJAX 请求 JSON 数据,也可以将数据从 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>';
      

      编辑:您必须评估 json 字符串,否则您将只有一个字符串而不是对象...

      记住所有关于混合 PHP/HTML/JavaScript 的指南...

      【讨论】:

      • 我会通过 ajax 提交 +1,因为您可以简单地评估返回的 json sn-p 并且您不必担心混合 php/javascript/html。
      猜你喜欢
      • 2017-04-20
      • 1970-01-01
      • 2020-11-26
      • 2015-02-14
      • 2022-01-02
      • 1970-01-01
      • 2018-05-20
      • 2019-03-11
      • 1970-01-01
      相关资源
      最近更新 更多