将关联数组从HTML发送到JS

时间:2016-09-10 17:40:21

标签: php html arrays twig custom-data-attribute

我需要通过html数据属性向JS发送几个值。

 <div class="article"
       data-article="[{% for data in article %}{{ data }},{% endfor %}]"
>

我使用foreach来获取现有关联数组的每个元素,以创建一个属于数据属性的新元素。

这很有效但我想在这个案例文章中发送整个数组,如果有某种方式

我知道数组可以通过数据HTML属性发送,但我想知道我是否可以合理地发送关联数组以避免一个html元素中的多数据属性。

2 个答案:

答案 0 :(得分:1)

在这种情况下我会使用JSON

使用php使用

构建html时
    data-article=JSON_encode($yourarray)

现在html将拥有该数组。您可以使用

在JS中解码它
   JSON.parse($("div.article")[0].dataset.article)

答案 1 :(得分:0)

我从消化不良中获得了解决方案。

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 %} 
 }]
'>