我想在HTML中自动选中复选框。我已经设法让它工作,但它在模板中有点混乱:
<ul>
{% for tag in tags %}
{% set selected = false %}
{% for article_tag in article.tags %}
{% if article_tag.id == tag.id %}
{% set selected = true %}
{% endif %}
{% endfor %}
<li><input type="checkbox" name="tags[]" value="{{ tag.id }}" {% if selected %}checked{% endif %}> {{ tag.name }}</li>
{% endfor %}
</ul>
所以我加载的数据是这样的(JSON格式):
[
'tags' => [
{'id'=> 1, 'name'=>'Travel'},
{'id'=> 2, 'name'=>'Cooking'},
],
'article' => {
'tags' => [
{'id'=> 1, 'name'=>'Travel'},
],
}
]
另外,我没有使用Symfony(我使用的是Slim的Twig库),所以不确定Symfony的框架中是否有一些东西可以使用Twig做事。如果是这样,它对我不起作用:(
问题是文章是一个数组,所以或者你需要为每个包含的标签数组循环使用它,或者你只是访问它的第一个元素,如下所示:
{% for article_tag in article[0].tags %}
而不是:
{% for article_tag in article.tags %}
查看此工作树枝上的结果
希望这个帮助