在 Symfony 2 中添加带有 javascript 的选择


Add select with javascript in Symfony 2

我想提出一个我出现的问题,但不知道如何解决它。假设我要创建一个动态选择,即,如果选择产品,如果我添加或删除产品,选择自动更新。例如,可以在控制器中进行如下查询:

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

然后以这种方式呈现它:

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

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

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

我的问题是我有一个用户选择购买产品的选择,如果你想添加另一个,通过一个标有"添加"的按钮启用一个javascript,所以另一个选择,你可以选择另一个产品。

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

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

自从我和这个在一起很久了,请,如果你能帮我做.

谢谢

你可以单独使用 JavaScript 来做到这一点,如果你改变你的模板来生成你的<SELECT>的"基本"副本,如下所示(假设 jQuery 简洁):

<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>

(演示)

我认为将您的

Javascript 包含在您的 Twig 文件中,而不是在单独的文件中,使您能够使用 {{ }} ,解决您的问题。

希望这有帮助。