我即将使用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']);
}
像这样一定没问题。但您可以添加一些参数,如格式、方法等。。。在你的路线中