How to submit form ajax in symfony2?
With jQuery, use serialize()
the form and post it to your route.
$('#form').submit(function(e) { e.preventDefault(); var url = "{{ path('YOUR_PATH') }}"; var formSerialize = $(this).serialize(); $.post(url, formSerialize, function(response) { //your callback here alert(response); }, 'JSON');});
In your action
if ($form->isSubmitted() && $form->isValid()) {.... // or return new JsonResponse($anyData); return new Response(json_encode(['status'=>'success']));}
it must be ok like this. but you can add some parameters like the format, methods etc... in your routing.
For the Ajax:
$("#person").submit(function(e){ var formURL = "{{ path('form') }}"; var formData = new FormData(this); $.ajax({ url: formURL, type: 'POST', data: formData, mimeType:"multipart/form-data", contentType: false, cache: false, processData:false, success: function(data, textStatus, jqXHR) { }, error: function(jqXHR, textStatus, errorThrown) { } }); e.preventDefault(); //Prevent Default action. e.unbind();});$("#person").submit();
And for Action
if ($request->isXmlHttpRequest()) {.... return new Response(json_encode(array('status'=>'success')));}