我将一些数据存储在数组中,然后将其存储在数组中。一切正常。但由于要求,我不得不在该数组中存储一些HTML。以下代码是其中的一部分
step2_data["data1"] = data1;
step2_data["color"] = color;
step2_data["data2"] = sectionArray;
var html = '<div class="here"></div>';
step2_data["drawing_door"] = html;
要检索数据,请执行此操作
var stored_data = JSON.parse('<?php echo json_encode(
get_user_meta( get_current_user_id(), "CONFIG_FILE",false));?>');
一切都很好,直到我介绍了HTML内容存储。 我得到以下错误
在控制台中,数组看起来像这样
JSON.parse('[[{"step 2":{"drawing_door":"<div class=\"here\"><\/div>"}}]]');
它是一个很大的数组我只是展示了html部分。
如果你们可以提出建议,任何想法我哪里出错或任何其他选择。
答案 0 :(得分:1)
如果你想通过javascirpt对象访问PHP数组,不需要将它存储为json字符串并解析它以转换为JavaScript对象,只需你可以做到
var stored_data = <?php echo json_encode(
get_user_meta( get_current_user_id(), "CONFIG_FILE",false));?>;
答案 1 :(得分:1)
所以我认为我的解决方案没问题,不是吗? :d。
错误,因为当您将HTML文本放入变量
时var html = "something"
现在“某事物”是字符串值。所以在double中所有都必须是字符串。如果你想把双引号放在里面,你有两个解决方法:
//add escape the special characters
var html = "<a href="\google.com"\></a>";
OR
//add single quote only inside
var html = "<a href='google.com' id='link' class='my_class' ></a>";
如果你在双引号中加上双引号“...”,那意味着你关闭字符串并把变量放在里面,如:
var link = "google.com";
var html = "<a href=' "+ link +" '></a>";
我希望我的解释清楚。对不起,我的英语不足以解释更多细节。