表单AJAX提交symfony不起作用

时间:2017-08-11 10:49:32

标签: ajax forms symfony

我不明白为什么我的AJAX提交无效。

我的控制器中有两种形式:

$intervento = new Intervento();
$form = $this->createForm(InterventoType::class, $intervento);

$form->handleRequest($request);

$user = new User();
$form_user = $this->createForm(UserType::class, $user);
$form_user->handleRequest($request);

if ($form_user->isSubmitted() && $form_user->isvalid()) {
    $response = new Response();
    return $this->json(array('risultato' => ' ok'));
}

if ($form->isSubmitted() && $form->isvalid()) { }

return $this->render('interventi/collaudo.html.twig', array(
    'form' => $form->createView(),
    'form_utente' => $form_user->createView(),
));

在我的twig文件中,我启动表单并且它可以工作:

{{form_start(form_utente,{'attr':{'id':'form-utente'}})}}
    .....
            <div class="row">
                <div class="input-field col s4">
                    <input type="submit" class="waves-effect waves-light btn-large" value="Submit">
                </div>
            </div>
        </div>
    </div>
{{form_end(form_utente)}}
</div>

在我的JavaScript文件中:

$('#form-utente').submit(function(e) {
    e.preventDefault();
    var form = $(this);
    $.ajax({
        type: form.attr('method'),
        url: form.attr('action'),
        data: form.serialize(),
        success: function (data) {
            alert(data['risultato']);
            // setTimeout(function() { window.location.href = "#" }, 500);
            // setTimeout(function() { $("#form-stufa").click() }, 500);
        },
        error: function(){
        }
    });
});

我在这个JavaScript中还有另一个AJAX调用,但我不会这样做。

提交按钮有时会返回Error 500,有时会返回undefined提醒。

我认为它不会在控制器中提交,但我不知道为什么。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

FOSJsRoutingBundle用于js网址。您需要公开路由。