我正在努力将数组设置为数据属性。我可以看到它正在使用下图登录 DOM(一团糟):
属性数据类别是焦点。如果转换后的 php 数组中有空格,我的 php 生成的似乎会添加 ='' 。这是将其转换为 json 数组的 php:
$arr = array();
foreach($cats as $cat) {
array_push($arr, $cat->cat_name);
}
data-category="<?php echo json_encode($arr); ?>"
我缺少什么来将其转换为正确的 json 结构以便我在 js 中使用。
我希望得到与此类似的结果:
Array [ "Customer Service", "Finance", "HR", "Marketing", "Operations", "Sales", "Technology" ]
最佳答案
My php that is producing this seems to add ='
这不是 PHP 产生的结果。
您正在 DOM 检查器中查看它。这显示了将 HTML 解析为 DOM,然后将其序列化回 HTML 以进行显示的结果。
如果您想查看 PHP 的输出,那么您需要查看查看源代码,而不是检查元素。
<小时/>JSON 使用 "
来分隔字符串。
由 "
字符分隔的 HTML 属性值将以 "
字符终止。
要将 "
表示为 HTML 属性值中的数据;请使用 "
。
通过htmlspecialchars
运行json_encode
的输出,然后将其输出到HTML中。
data-category="<?php echo htmlspecialchars(json_encode($arr)); ?>"
关于javascript - 使用 Json_encode 然后传递给数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514852/