使用Javascript将复选框动态添加到Symfony 2表单

时间:2015-06-12 09:10:10

标签: javascript jquery forms symfony

我对Symfony2和Javascript有点问题。

我有一个带有选择框的表单:

$builder
   ->add('town', 'entity', [
       'class' => 'AppBundle:Towns',
       'property' => 'id',
       'placeholder' => 'Select an item',
       'required' => true,
   ]);

当我点击城镇时,与所选城镇相关的税费必须显示在表单中,如复选框所示。

根据我的理解,我必须通过AJAX调用控制器并获取id的JSON和税收描述,不是吗?但是,我应该怎么做才能将这些信息添加到表单中?我如何拦截此选择框的“选定”事件?

当用户点击“发送”按钮时,我应该做些什么来将信息发送到服务器? AFAIK,Symfony2有一些机制可以避免发送不是由表单生成的数据,不是吗?

1 个答案:

答案 0 :(得分:1)

您必须为表单构建器定义collection字段。

只需像这样添加;

$builder->add('taxes', 'collection', [
    'type' => 'checkbox',
    'options' => ['required' => true] 
];

从您的观点中调用它:

{{ form_row(form.taxes) }} // or just use render all form field with form_widget(form)

然后,你必须写一些javascript来为你的收藏添加/删除税。

如果您想根据选定的城镇选择税款,那么;向控制器发出ajax请求,返回json / html数据,然后将其添加到您的表单中;

<input type="checkbox" name="taxes[]" value="your_tax_value" />