【问题标题】:Assigning IDs to dynamically generated HTML tags将 ID 分配给动态生成的 HTML 标记
【发布时间】:2016-01-11 20:44:28
【问题描述】:

我正在使用 Symfony 2 PHP 框架和 Twig。我的问题是这样的:

我必须生成可变数量的<select> 元素。然后每个选择显示一堆选项,用户必须从中选择一个。所以我想以某种方式为每个 <select> 元素分配一个 id 属性,这样我就可以为每个元素获取选定的选项。

我一直在环顾四周并尝试不同的东西,但到目前为止没有任何效果。

我的代码如下所示:

<form action="" method="POST" id="selectForm">
    {% for i in 1..11 %}
        <select class="select" id="select{{ i }}">
            <option disabled selected> --Select a player -- </option>
                {% for item in items %}
                    <option>...</option>
                {% endfor %}
        </select></br>
    {% endfor %}
    <button class="btn btn-primary" id="updateButton">Update</button>
</form>

如您所见,我最近尝试使用 Twig 变量 i,它迭代 for 循环以设置 id,但它似乎不起作用。

【问题讨论】:

  • 您是否考虑过使用 symfony 表单 ..symfony.com/doc/current/book/forms.html 表单组件与 twig 紧密合作,并自动为您生成所有这些 ..
  • 您发布的代码正确生成了&lt;select&gt; 元素。您可以在此处查看执行代码的结果:twigfiddle.com/sd3p02
  • 如果您尝试将模板中的player 选项映射到玩家实体选择字段,您需要提供一个ID 数组作为该字段的默认数据。请参阅.../vendor/symfony/symfony/UPGRADE-2.3.md,第 173 行转发。
  • 感谢您的帮助! Javier 是对的,显然我最后一次使用 twig 循环索引分配 id 的尝试是正确的,我只是看不到它,因为我也没有正确选择元素,我只是没想过检查源代码看看是否正确分配了 id,非常感谢@JavierEguiluz 和其他人的提示!

标签: javascript php jquery html symfony


【解决方案1】:

你应该用字符串连接变量而不是打印它

<form action="" method="POST" id="selectForm">
    {% for i in 1..11 %}
        {% set sid = "select"~i %}
        <select class="select" id=sid>
            <option disabled selected> --Select a player -- </option>
                {% for item in items %}
                    <option>...</option>
                {% endfor %}
        </select></br>
    {% endfor %}
    <button class="btn btn-primary" id="updateButton">Update</button>
</form>

【讨论】:

  • 是的,你可以这样做。但没有必要这样做。 Twig 代码在 id 属性方面按预期工作。请参阅 twigfiddle.com/sd3p02
猜你喜欢
  • 2021-12-28
  • 2014-09-23
  • 2013-02-28
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多