Я новичок в symfony и ajax, я хочу отправить форму без обновления страницы каждый раз, когда я шел вместе с учебником this, все, что работает на странице, отправляется в базу данных, но проблема в том, что i получите это сообщение в браузереJson response отображается
{"message":"Success!"}
Это то, что я имею в своем контроллере.
$bon = new Bons();
$form = $this->createForm('AppBundle\Form\BonsType', $bon);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($bon);
$em->flush();
return new JsonResponse(array('message' => 'Success!'), 200);
}
return $this->render('bons/new.html.twig', array(
'bon' => $bon,
'form' => $form->createView(),
));
Аякс части:
$(document).ready(function() {
$('body').on('submit', '.myForm', function (e) {
e.preventDefault();
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data: $(this).serialize()
})
.done(function (data) {
if (typeof data.message !== 'undefined') {
alert(data.message);
}
})
.fail(function (jqXHR, textStatus, errorThrown) {
if (typeof jqXHR.responseJSON !== 'undefined') {
if (jqXHR.responseJSON.hasOwnProperty('form')) {
$('#form_body').html(jqXHR.responseJSON.form);
}
$('.form_error').html(jqXHR.responseJSON.message);
} else {
alert(errorThrown);
}
});
});
});
есть ли способ представить форму без перенаправления или обновить страницу
Сначала вы сказали, что сделали этот код, потому что не хотите, чтобы ссылка resh страницу каждый раз и внизу вы спрашиваете, есть ли способ обновить страницу ... что это такое? – Chris
О, я не заметил этого, я на самом деле имел в виду первое, отправляя без обновления –