如何将嵌套的php数组放入javascript?

时间:2013-08-07 19:58:19

标签: php javascript html json

我有这段代码

        $ref = addslashes(htmlspecialchars(json_encode($value)));
        echo '<script>var message_store_'.$key.'=$.parseJSON('.$ref.');alert(message_store_'.$key.');</script>';
        echo '<div class="message_entry" id ="message_entry'.$key.'" onclick="open_up_thread(\''.$ref.'\',\''.$key.'\');">'.$key.'</div>';
        $recent = end($value);
        echo '<div id ="recent_message_log_entry'.$key.'"><div>'.$recent['message'].'</div><div>'.$recent['date_posted'].'</div></div>';

我在将数组存储在全局JavaScript变量中时遇到问题。 但我有div onclick事件工作正常,数组转换为我想要的,函数open_up_thread正在解析编码的JSON对象。

我需要在onclick事件被触发之前跟踪该数组(在onclick之后它就像已经转换的那样容易)。

那么我如何在php中将php数组存储为全局javascript对象作为JSON。

为什么我有onclick工作而不是变量

的任何原因

提前致谢

2 个答案:

答案 0 :(得分:0)

echo '<script>var message_store_'.$key.'=$.parseJSON(\''.$ref.'\');

中的$ ref附近放置单引号
$ref = json_encode($value);
        echo '<script>var message_store_'.$key.'='.$ref.';alert(message_store_'.$key.');</script>';
        echo '<div class="message_entry" id ="message_entry'.$key.'" onclick="open_up_thread(\''.$ref.'\',\''.$key.'\');">'.$key.'</div>';
        $recent = end($value);
        echo '<div id ="recent_message_log_entry'.$key.'"><div>'.$recent['message'].'</div><div>'.$recent['date_posted'].'</div></div>';

答案 1 :(得分:0)

删除$.parseJSON()功能并移除htmlspecialcharsaddslashes

$ref = json_encode($value);
echo '<script>var message_store_'.$key.'='.$ref.';alert(message_store_'.$key.');</script>';

JSON是一种可以直接解析为变量的格式。