Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将关联数组从HTML发送到JS_Php_Html_Arrays_Twig_Custom Data Attribute - Fatal编程技术网

Php 将关联数组从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元素中包含多个

我需要通过html数据属性向JS发送一些值

 <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}}”