我在Symfony 2(.1.8)应用程序中有一个表单,用于在名为media
的表中创建条目。我在媒体表单类中使用buildForm函数构建表单
在其他字段中,media
表格包含以下3个字段:url
,mediatype
和file
。
mediatype
是与mediatype
表的关系,我将其渲染为下拉列表,其中包含两个值:VIDEO
和IMAGE
。
我现在想做什么:
当用户在下拉列表中选择VIDEO
时,url
form_row应该可见。当他在下拉列表中选择IMAGE
时,file
form_row应该是可见的。当用户尚未选择任何内容时,url
或file
都不可见。
我用这段代码尝试了这个(但是当然它没有用,因为form.vars不是动态的我猜?):
{% if form.vars.value.mediatype == "video" %}
{{ form_row(form.url, { 'attr': {'class': 'form_url'} }) }}
{% elseif form.vars.value.mediatype == "image" %}
{{ form_row(form.file, { 'attr': {'class': 'form_file'} }) }}
{% endif %}
有没有一种使用Twig和/或Symfony框架的好方法?我想用Javascript做这件事,但我首先想知道Twig / Symfony本身是否可能无法实现?
提前致谢!
答案 0 :(得分:1)
我正在考虑使用Javascript进行此操作,但我首先想知道Twig / Symfony本身是否无法实现?
第一个想法永远是最好的;)Twig是一种模板语言,是解析服务器端的。你的想法是用javascript
隐藏另一个字段是处理这些事情的好方法。
但是有一件重要的事情需要注意!我想只有一个字段url
和file
必须填写。使用简单的Javascript解决方案,这两个字段将始终发送到您的应用程序。因此,Symfony2提供表单事件。关于他们有一个whole chapter in the cookbook。