在 Symfony 2 中添加 select 和 javascript

Add select with javascript in Symfony 2

我想提出一个我遇到但不知道如何解决的问题。 假设我想创建一个动态的 select ,即,如果一个 select 产品,如果我添加或删除一个产品,select 会自动更新。例如,可以像这样在控制器中进行查询:

$products = $em->getRepository('MyBundle:Entity')->findAll();

然后这样渲染:

return $this->render('MyBundle:myfolder:mytwig.html.twig', array("products" => $products));

最后在我的模板中,像这样创建我的 select:

<select>
{% for product in products %}
<option value="{{ product.name }}">{{ product.name }}</option>
{% endfor %}
</select>

我的问题是我有一个 select,用户可以在其中选择购买产品,如果您想添加另一个产品,请通过标有 "Add" 的按钮启用 javascript,因此会生成另一个 select,您可以在其中选择其他产品。

我已经制作了 javascript 文件,但是如果我在产品中使用树枝无法识别我,即,我无法添加 javascript:

<select>
    {% for product in products %}
    <option value="{{ product.name }}">{{ product.name }}</option>
    {% endfor %}
</select>

很长时间以来我一直在做这个,如果你能帮我做的话。谢谢

如果您像这样更改模板以生成 <SELECT> 的 "base" 副本(为简洁起见,假设 jQuery),您可以单独使用 JavaScript 来完成此操作:

<div id='products_list'>
    <select>
    {% for product in products %}
      <option value="{{ product.name }}">{{ product.name }}</option>
    {% endfor %}
    </select>
</div>
<button id='AddProduct'>Add</button>
<script>
  $('#AddProduct').on('click', function () {
    var base = $('#products_list select:first');
    base.parent().append(base.clone());
  });
</script>

(demo)

我认为将 Javascript 包含在 Twig 文件中,而不是单独的文件中,可以让您使用 {{ }},解决您的问题。

希望对您有所帮助。