2

PHPに配列があり、_json_encode(..)_を使用してJSONオブジェクトにパックします。次に、それをパラメータとしてJS関数に送信します。eval(..)を使用してJavascriptでオブジェクトを解析したい場合、何も起こりません(私が推測するカーテンの後ろにエラーがあります)。何が間違っている可能性がありますか?
コード:

<script type="text/javascript">
    function testFun(inArr) {
      var obj=eval('('+inArr+')');
      alert(obj.m); //alert(obj) also doesnt work
    }
</script>  


//PHP
$spola_array = array('m' => 1, 'z' => 2);
$json_obj=json_encode($spola_array);
echo '<script type="text/javascript">testFun('.$json_obj.');</script>';
4

1 に答える 1

5

文字列ではなくオブジェクトリテラルとして出力しているため、すでに解析されています。次のようになります。

<script type="text/javascript">testFun({m: 1, z: 2});</script>

したがって、関数では、次のようになります。

alert(inArr.m) //1

文字列の場合にのみ解析する必要があります。

<script type="text/javascript">testFun('{m: 1, z: 2}');</script>
于 2012-05-27T21:42:30.897 に答える