我想提出一个我出现的问题,但不知道如何解决它。假设我要创建一个动态选择,即,如果选择产品,如果我添加或删除产品,选择自动更新。例如,可以在控制器中进行如下查询:
$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 文件中,而不是在单独的文件中,使您能够使用 {{ }}
,解决您的问题。
希望这有帮助。