在选择选项中选择Twig中的选定项目

时间:2019-01-30 15:57:55

标签: php twig

我有此代码:

{% set selectedIdItems = "{{ pageTemplate.pageHeader.pageValue.comp1X }}"|split('|') %}


<select name="comp1" id="comp1" multiple>
<option value=""></option>
 {% for dataValue in pageTemplate.pageHeader.pageValue.categoryArray %}
   <option value="{{ dataValue.id }}">{{ dataValue.name }}</option>
 {% endfor %}
</select>

selectedIdItems具有原始形式的值(在拆分之前):| 1 | 2 | 3

在数组“ selectedIdItems”中,我已经选择了选项。

如何在select中设置呢? (我想在我的选项中添加:selected =“ selected”)

我该怎么做?

更新

我尝试了此代码,但无法正常工作(请勿添加所选内容):

<select name="comp1" id="comp1" multiple>
                                        <option value=""></option>
                                        {% for dataValue in pageTemplate.pageHeader.pageValue.categoryArray %}
                                            <option {% if dataValue.id in selectedIdItems %} selected="selected" {% endif %} value="{{ dataValue.id }}">{{ dataValue.name }}</option>
                                        {% endfor %}
                                    </select>

1 个答案:

答案 0 :(得分:0)

由于您已经在twig语句中,因此无需使用{{ ... }}。 那是用来输出东西。

{% set selectedIdItems = "{{ pageTemplate.pageHeader.pageValue.comp1X }}"|split('|') %}

此外,通过使用上面的代码段,变量selectedItItems将包含文字字符串{{ pageTemplate.pageHeader.pageValue.comp1X }},因为变量不会在twig的引号之间进行插值

将代码更改为

{% set selectedIdItems = pageTemplate.pageHeader.pageValue.comp1X|split('|') %}

demo