在 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 文件中,而不是单独的文件中,可以让您使用 {{ }}
,解决您的问题。
希望对您有所帮助。
我想提出一个我遇到但不知道如何解决的问题。 假设我想创建一个动态的 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 文件中,而不是单独的文件中,可以让您使用 {{ }}
,解决您的问题。
希望对您有所帮助。