Symfony2高级选择表单

symfony2 advanced select in form

本文关键字:表单 选择 高级 Symfony2      更新时间:2023-09-26

是否有一种方法可以根据在主表单中选择的用户从客户端添加集合或下拉列表?

我也遇到了同样的问题。我使用jQuery获取集合的一部分(额外的输入字段)。在控制器中,我有表单构建器,创建并返回这些输入作为HTML。您可以添加条件和传递参数(我使用POST和GET仅用于测试),并获得不同的集合。

/**    
* @Route("/gcco/{id}", name="name", options={"expose"=true})
* @Method({"GET", "POST"})
*/
public function functionName($id){
     $defaultData = array('message' => 'Type here');
     $form = $this->createFormBuilder($defaultData, array('csrf_protection' => false));
     $form->add('name', 'type', array(
                    'label' => 'label',
                    'label_attr' => array(
                         'title' => 'title',
                    ),
                    'required' => false,
               ));
          }
     }
     $form = $form->getForm();
     $html = $this->renderView('YourBundle:Default:form.html.twig', array('form' => $form->createView()));
     return new JsonResponse(
          array(
            'html' => $html
          )
     );
}

并在form.html.twig文件中添加,这样您将只获得输入字段:

{{ form_widget(form) }}

在JsonResponse中你将得到你的集合。

也许这不是最好的方法,但它每次都对我有效。

另一种方法是将JSON传递回JavaScript并在那里构建所有输入