symfony2高级选择形式

时间:2015-06-03 23:22:56

标签: javascript php forms symfony

有没有办法根据主窗体下拉菜单中选择的用户从客户端添加收集或下拉?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我使用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并在那里构建所有输入。