如何在symfony2中提交表单ajax?

我即将使用Ajax提交我的表单,我已经使用POST成功提交了表单,但不知道如何使用Ajax和Symfony

建筑模板

$builder->添加('name','text',array('constraints'=>array(new NotBlank()),'attr'=>array('placeholder'=>'name'))
-&燃气轮机;添加(‘性别’、‘选择’、‘数组’(‘空值’=>‘选择性别’、‘约束’=>数组(new NotBlank())、‘选择’=>\AppBundle\Entity\Records::$gender\u list,“必需”=>true))
-&燃气轮机;添加('dateOfBirth','Birth',数组('label'=>'Date Of Birth','required'=>true))
-&燃气轮机;添加('image\u path','file',array('label'=>'','required'=>false,'data\u class'=>null,'constraints'=>array),'new Assert\file(array('mimeTypes'=>$mime\u types,'maxSize'=>'2048k')))
-&燃气轮机;添加('出生国','实体',数组('空值'=>'出生国',
'class'=>'AppBundle\Entity\Location',
“属性”=>“国家”,
“标签”=>“出生国”
))
-&燃气轮机;添加('宗教','实体',数组('空值'=>'选择宗教',
'class'=>'AppBundle\Entity\religation',
“属性”=>“名称”,
“标签”=>“宗教”
));

行动

$success=false;
$record_rep=new\AppBundle\Entity\Records();
$form=$this->createForm(新建\AppBundle\Form\AddPersonType(),$record\u rep);
如果($this->getRequest()->getMethod()=='POST'){
$form->提交($request);
如果($form->isValid()){
$data=$form->getData();
$file=$data->getImagePath();
$image=$file->getClientOriginalName();
$new\u image\u name=$this->hanldeUpload($image,$file);
$this->savetoDB($data、$record\u rep、$new\u image\u name);
$success=true;
}
}
返回$this->render('AppBundle:Homepage:add_person_form.html.twig',数组('form'=>$form->createView(),'success'=>$success));
}

使用jQuery,使用serialize()表单并将其发布到路由中

$('#表单')。提交(函数(e){
e、 预防默认值();
var url="{{path('YOUR_path')}}}";
var formSerialize=$(this).serialize();
$.post(url、formSerialize、函数(响应){
//您的回电在这里
警报(响应);
}“JSON”);
});

在你的行动中

如果($form->isSubmitted()&$form->isValid()){
....
//或者返回新的JsonResponse($anyData);
返回新的响应(json_encode(['status'=>'success']);
}

像这样一定没问题。但您可以添加一些参数,如格式、方法等。。。在你的路线中

发表评论