我需要从Symfony表单发送带有Ajax调用的数据,其中包含一个包含控制器选项的额外数据。
我正在开发一个自定义框架,包括Symfony表单组件。
所以我尝试在我的JS中发送这样的值:
$.ajax
(
{
type: "POST",
url: '/myUrl',
data:
{
'formData' : $(this).serialize(),
'extraData' : {'test1' : 'test1', 'test2' : 'test2'}
},
success: function(result)
{
// do something
}
}
);
如何在控制器中获取表单数据以让组件正确理解它?此代码无效:
$formData = $this->getRequest()->request('formData');
$form->bind($formData);
谢谢。我希望我的问题很清楚
编辑:我最终将数据集成到表单中的隐藏字段中。表单没有声明任何data_class,因为我们使用的ORM是一个非常自定义的ORM。谢谢你的回答
答案 0 :(得分:0)
尝试$form->submit($formData);
http://symfony.com/doc/current/cookbook/form/direct_submit.html
答案 1 :(得分:0)
如果您的表单有data_class选项,则无法使用extra_values直接绑定/处理请求。
您的表单需要您已在表单类型上定义的变量。
像这样使用:
if($request->isXmlHttpRequest()) {
$form->handleRequest($request);
if($form->isValid()) {
// To get extra data;
$extra_data = $request->request->get('extraData');
}
}