【问题标题】:How to enable a field when a checkbox is checked in php Symfony在php Symfony中选中复选框时如何启用字段
【发布时间】:2016-07-13 17:06:09
【问题描述】:

我有一个有点棘手的场景(对我来说),我不完全了解如何做到这一点。

创建一个订单并将其分配给主管审批。主管通过单击按钮批准或不批准订单。有时主管需要发送订单以获得第二次批准。为此,在主管批准订单之前,他需要选中“需要第二次批准”复选框。当该复选框被选中时,一个隐藏字段会变得可见,主管可以在其中选择第二个用户进行批准。

话虽如此,我该怎么做;

  1. 在 Symfony 中获取一个复选框来切换字段是否隐藏,并且
  2. 当该复选框被选中或不更新订单状态时,如何使用 PHP 以 Symfony 方式(如果我可以这样说的话)进行检查。如果复选框被选中 -> 表示需要第二次批准 -> 表示“部分批准”作为状态。如果未选中 -> 表示不需要第二次批准 -> 表示 -> 状态为“已批准”。笔记;复选框值未存储在数据库中,还是这样做更好?

我真的希望这足够清楚。拜托,我需要帮助,我还不了解 Symfony 的一切。我在一月份开始学习它。

提前谢谢你!


更新:我想我找到了一些能让我朝着正确方向前进的东西; get value of checkbox in symfony

【问题讨论】:

  • 您的更新是否意味着这已解决..?还是您还有问题?

标签: php symfony checkbox


【解决方案1】:

这里有几个问题。

首先关于复选框: 您可以有一个未存储在数据库中的复选框。在表单类型中使用属性mappedhttp://symfony.com/doc/current/reference/forms/types/form.html#mapped

其次,关于显示一个可选字段: 有很多方法可以做到。

一种方法是在您的表单类型中设置此字段,通过将其类型设置为“隐藏”(构建器上 add() 函数的第二个参数)使其隐藏,在复选框上添加一个 javascript 侦听器并更新相应的字段的类型属性。这是最快的方法。

另一种方法是使用表单侦听器/订阅者。见http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html

在这两种方式中,请确保您的“第二个审批主管”属性在您的 Order 实体中可以为空,因为此字段是可选的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多