2016-09-10 15 views
1

JSにhtmlデータ属性を介していくつかの値を送る必要があります。私は、データ属性である新しいものを作成するために、既存の連想配列の各要素を取得するためのforeachを使用HTMLからJSへの連想配列を送る

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

これはうまく動作しますが、私はその配列がデータHTML属性を経由して送信することができます知っている

のためのいくつかの方法がある場合は、この場合の記事で配列全体を送信したいが、私は連想配列を送信できる場合、私は疑問に思います1つのhtml要素で複数のデータ属性を避ける理由

答えて

1

あなたがPHPの使用と

data-article=JSON_encode($yourarray) 

をHTMLを構築するとき、私は今のhtmlが配列を持つことになり、この場合に

をJSONを使用します。あなたはJSでそれをデコードすることができます

JSON.parse($("div.article")[0].dataset.article) 
+0

最も正確に言えば、これはTWIGソリューションではありません。しかしそれはTWIGでも完全に実行可能です: 'data-article =" {{article | json_encode | raw}} "' –

0

私は水分の摂取から解決されました。

このよう

data-article='[{ {% for key,value in article %}{% if i > 0 %},{% endif %}"{{ key}}":"{{ value }}"{% set i = i+1 %}{% endfor %} }]'> 

にITが一列に

しなければならないことを私はJSONが私を助けているが、symfonyの小枝が配列

をレンダリングしているとき、私は再びforeachの中でそれを行う必要があります

{% set i = 0 %} 
data-article=' 
[{ 
    {% for key,value in article %} 
     {% if i > 0 %},{% endif %} 
     "{{ key}}":"{{ value }}" 
     {% set i = i+1 %}{% endfor %} 
}] 
'>