отправка формы symfony2 с помощью ajax



Я использую Symfony2, doctrine2 и twig. Пытаюсь отправить форму с помощью ajax. Функция ajax всегда возвращает следующее сообщение: "это не ajax!". Я не нашел в этом проблемы. Надеюсь, вы мне поможете.

Код веточки:



<form id="form_newsletter" action="{{ path('portofolio_front_newsletter') }}" method="post" {{ form_enctype(newsletterForm) }}>
<!-- form errors -->
{{ form_errors(newsletterForm.email) }}
<div class="input-group">
{{ form_widget(newsletterForm.email, {'attr': {'class' : 'form-control email', 'placeholder' : 'Enter your email'} }) }}
{{ form_rest(newsletterForm) }}
<span class="input-group-btn">
<button class="btn btn-danger" id="btnSubmit" type="submit">Go!</button>
</span>
</div>
</form>


Код Jquery:



<script type="text/javascript">
$(document).ready(function() {
$("#form_newsletter").submit(function(e) {
e.preventDefault();
var email = $('.email').val();
alert(email);
var DATA = 'email=' + email;
alert(DATA);
var url = $("#form_newsletter").attr("action");
$.ajax({
type: "POST",
url: url,
data: DATA,
cache: false,
success: function(data) {
console.log(data);
}
});

});
});

</script>


Код контроллера:



public function newsletterAction(Request $request) {
if ($request->isXMLHttpRequest()) {
return new JsonResponse(array('data' => 'this is a json response'));
}

return new Response('This is not ajax!', 400);
}
654   2  

2 ответов:

Похоже, что ваша форма будет отправлена нормально после выполнения запроса ajax, потому что обычное событие по умолчанию submit запускается, даже если вы уже отправили запрос. Вы пробовали добавить:

e.preventDefault():

В :

$("#frm_newsletter").submit(function(e) { 
   e.preventDefault();
   // rest of your code
}

? (обратите внимание на e в параметрах функции)

Ваш идентификатор формы в html-это form_newsletter. идентификатор формы в JS-frm_newsletter.

Опечатка?

Comments

    Ничего не найдено.