使用ajax提交symfony2表单

时间:2014-07-21 17:08:02

标签: jquery ajax symfony twig

使用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);
}

2 个答案:

答案 0 :(得分:2)

在发出ajax请求后,您的表单似乎正常提交,因为即使您已经发出请求,也会触发正常的默认submit事件。您是否尝试添加:

e.preventDefault():

in:

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

? (注意函数参数中的e

答案 1 :(得分:0)

html中的表单ID是form_newsletter。 JS中的表单ID是frm_newsletter。

错字?