Php 将关联数组从HTML发送到JS
我需要通过html数据属性向JS发送一些值Php 将关联数组从HTML发送到JS,php,html,arrays,twig,custom-data-attribute,Php,Html,Arrays,Twig,Custom Data Attribute,我需要通过html数据属性向JS发送一些值 <div class="article" data-article="[{% for data in article %}{{ data }},{% endfor %}]" > 我使用foreach获取现有关联数组的每个元素,以创建数据属性中的新元素 这工作得很好,但如果有办法的话,我想在本例文章中发送整个数组 我知道数组可以通过数据HTML属性发送,但我想知道我是否可以发送关联数组,以避免在一个HTML元素中包含多个
<div class="article"
data-article="[{% for data in article %}{{ data }},{% endfor %}]"
>
我使用foreach获取现有关联数组的每个元素,以创建数据属性中的新元素
这工作得很好,但如果有办法的话,我想在本例文章中发送整个数组
我知道数组可以通过数据HTML属性发送,但我想知道我是否可以发送关联数组,以避免在一个HTML元素中包含多个数据属性。在这种情况下,我会使用JSON 使用php构建html时,请使用
data-article=JSON_encode($yourarray)
现在html将拥有数组。您可以使用JS对其进行解码
JSON.parse($("div.article")[0].dataset.article)
我是从随和的建议中得到解决办法的 JSON正在帮助我,但当symfony twig渲染数组时,我必须再次在foreach中这样做 我是这样做的
data-article='[{ {% for key,value in article %}{% if i > 0 %},{% endif %}"{{ key}}":"{{ value }}"{% set i = i+1 %}{% endfor %} }]'>
它必须在一行中
{% set i = 0 %}
data-article='
[{
{% for key,value in article %}
{% if i > 0 %},{% endif %}
"{{ key}}":"{{ value }}"
{% set i = i+1 %}{% endfor %}
}]
'>
最正确的是,这不是一个细枝解决方案。然而,使用TWIG也是完全可行的:
data-article=“{{article | json_-encode | raw}}”