【问题标题】:Twig Setting Select Option on a dropdownTwig Setting 在下拉列表中选择选项
【发布时间】:2017-07-26 14:31:39
【问题描述】:

我目前正在从头开始编写一个 php mvc 并使用 twig 作为我的模板引擎,并且需要一些帮助来设置下拉列表中的选定选项。目前在我的模型中,我有一个 sql 查询,它可以提取所有主管列表,并使用 twig for 循环将它们放入我的下拉列表中,但如果匹配,我需要了解如何选择用户的主管。

我现在很抱歉,因为我是 Twig 的新手

查看:

<select class="form-control" id="supervisor">
      {% for supervisor in supervisor %}
      <option value="{{supervisor.fname}} {{supervisor.lname}}" >{{supervisor.fname}} {{supervisor.lname}}</option>
      {% endfor %}
</select>

试过了:

<select class="form-control" id="supervisor">
      {% for supervisor in supervisor %}
{% if {{supervisor.fname}} {{supervisor.lname}} == {{ user.supervisor }} %}
            <option value=”{{supervisor.fname}} {{supervisor.lname}}” selected>{{supervisor.fname}} {{supervisor.lname}}</option>
{% else %}
    <option value=”{{supervisor.fname}} {{supervisor.lname}}”>{{supervisor.fname}} {{supervisor.lname}}</option>
{% endif %}
      {% endfor %}
</select>

【问题讨论】:

    标签: php templates twig


    【解决方案1】:

    也许你可以尝试这样的事情:
    在循环中将supervisor 变量名替换为oneSupervisor,并用user.supervisor 测试oneSupervisor

    <select class="form-control" id="supervisor">
        {% for oneSupervisor in supervisor %}
            {% set selected = '' %}
            {% if (oneSupervisor.fname ~ ' ' ~ oneSupervisor.lname) == user.supervisor %}
               {% set selected = 'selected' %}
            {% endif %}
            <option value="{{oneSupervisor.fname}} {{oneSupervisor.lname}}" {{ selected }}>{{oneSupervisor.fname}} {{oneSupervisor.lname}}</option>
        {% endfor %}
    </select>
    

    【讨论】:

    • 这仍然没有设置选择值,但我很确定我知道为什么......查询从中提取的表有一个名字和姓氏列,并且正在设置的 oneSupervisor var 是不返回名字 first 和 last name。我试图设置一个像 {% set moose = 'oneSupervisor.fname oneSupervisor.lname' %} 这样的监督变量,在 if 语句中使用它,但它仍然没有设置选择
    • supervisoruser.supervisor 中有什么?
    • User.supervisor 将其作为一个字符串返回 Bob Smith onesupervisor 是一个数组(fname Bob lname Smith),我可以创建一个只容纳所有主管的新表
    • @darkdelusions:我用连接改变了我的 if 测试
    • 感谢@doydoy44 纠正了我什至没有考虑将两者连接在一起的问题。
    【解决方案2】:

    假设您有一个名为 form 的表单,其中有一个名为 field 的选择字段,您可以简单地执行以下操作:

    {% do form.field.setRendered %}
    <select id="{{ form.field.vars.id }}" 
            name="{{ form.field.vars.name }}"> 
        {% for option in form.field.vars.choices %}
            <option {{ form.field.vars.value == option.value ? 'selected' : '' }} 
                    value="{{ option.value }}">
                {{ option.label }}
            </option>
        {% endfor %}
    </select>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      相关资源
      最近更新 更多