javascript - 使用 Json_encode 然后传递给数据属性

标签 javascript php json

我正在努力将数组设置为数据属性。我可以看到它正在使用下图登录 DOM(一团糟):enter image description here

属性数据类别是焦点。如果转换后的 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/

相关文章:

javascript - Angular Http Get 始终为 ng-click 返回状态 0

json - 如何使用 bash 或 jq 在 linux 中解析 Json 文件以设置结果

javascript - 返回数组中带有父元素的单个子元素

javascript - 为什么 JavaScript 变量会以美元符号开头?

javascript - 在 AngularJS onload 的下拉菜单中设置选定的选项

javascript - 数据显示更新结果,但更新结果不工作 PHP

PHP系统通知发送

javascript - 如何设置VSCode将花括号放在新行上?

PHP PDO 执行失败时事务会回滚吗?

javascript - 为什么我在一条路线上没有得到 req.body ? Node JS