【问题标题】:Symonfy form: display input according to value of other field (Twig)Symfony表单:根据其他字段的值显示输入(Twig)
【发布时间】:2013-07-31 05:44:11
【问题描述】:

问题

我的 Symfony 2(.1.8) 应用程序中有一个表单,用于在名为 media 的表中创建一个条目。我在媒体表单类中使用 buildForm 函数构建表单。
在其他字段中,media 表包含以下 3 个字段:urlmediatypefile

mediatype 是与 mediatype 表的关系,我将其呈现为具有两个值的下拉列表:VIDEOIMAGE

我现在想做的事: 当用户在下拉列表中选择VIDEO 时,url form_row 应该是可见的。当他在下拉列表中选择IMAGE 时,file form_row 应该是可见的。当用户尚未选择任何内容时,urlfile 都不应该是可见的。

我用这段代码试过这个(但当然它不起作用,因为我猜 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 本身是否不可能?

提前致谢!

【问题讨论】:

    标签: symfony twig symfony-2.1 symfony-forms


    【解决方案1】:

    我想用 Javascript 来做,但我首先想知道 Twig/Symfony 本身是否不可能?

    第一个想法总是最好的 ;) Twig 是一种模板语言,并在服务器端进行解析。你的想法只是用javascript 隐藏另一个字段是处理这些事情的好方法。

    但是有一件重要的事情需要注意!我猜只有urlfile 字段之一必须填写。使用普通的 Javascript 解决方案,两个字段都会发送到您的应用程序。因此 Symfony2 提供了表单事件。有一个关于他们的whole chapter in the cookbook

    【讨论】:

    • 感谢您的回答!还没有看到表单事件页面,现在去看看:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多