【问题标题】:php associative array to javascript - doesn't workphp关联数组到javascript - 不起作用
【发布时间】:2015-05-03 09:10:10
【问题描述】:

我一直在尝试。我认为到目前为止它已经奏效了,但现在它没有..

<?php
    $arr['123'] = 'QWE123';
    $arr['124'] = 'QWE124';
?>

<input id="arr" value=<?php echo json_encode($arr); ?> hidden>

<script>
    $(function (){
      var arrJS = $("#arr").val();
      console.log( arrJS );         // looks fine {"123":"QWEQWE123","124":"QWEQWE124"}
      console.log( arrJS['123'] );  // undefined !!!
    });
</script>

附言反对没有帮助。 arrJS = Object( $("#arr").val() );

【问题讨论】:

  • 在这里打印您的console.log( arrJS );
  • 试试 console.log(json_decode(arrJS['123']));
  • 您可以使用var obj= jQuery.parseJSON(arrJs); 并通过-&gt; exmp - obj-&gt;123; 作为对象访问
  • anant kumar singh,json_decode 实际上是 php func
  • mcklayin 谢谢!!现在可以工作了!

标签: javascript php arrays


【解决方案1】:

你必须解析 json。你可以这样做:

var parsed = JSON.parse(arrJS);

希望对您有所帮助!

【讨论】:

    【解决方案2】:

    只是因为 json_encode 将数组转换成双引号"

    当使用带值的双引号 " 结果将是

    所以将value="&lt;?php echo json_encode($arr); ?&gt;" 更改为value='&lt;?php echo json_encode($arr); ?&gt;'

     <?php
        $arr = [];
            $arr['123'] = 'QWE123';
            $arr['124'] = 'QWE124';
        ?>
    
        <input id="arr" value='<?php echo json_encode($arr); ?>' >
    
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>
            $(function (){
              var arrJS = $("#arr").val();
              arrJS = JSON.parse(arrJS);
              console.log( arrJS );         
              console.log( arrJS['123'] );  
            });
        </script>
    

    【讨论】:

    • 对,我实际上不使用任何引号。这是打字错误
    • cant)) 声誉低)) 你知道 JSON.parse 和 jQuery.parseJSON 有什么大不同吗?
    • 你可以在这里看到不同之处。 stackoverflow.com/questions/10362277/…
    猜你喜欢
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多