提交使用ajax动态呈现的symfony表单

时间:2019-03-28 19:24:50

标签: ajax forms symfony

我正在尝试通过Ajax创建动态呈现的Symfony表单。现在,我写了这样的东西:

JavaScript

    content.on('click', '.edit-user-data-btn', function() {
    let id = $(this).parent().parent().attr('id');
    if (id === undefined) return;
    console.log(id);
    $.ajax({
        url: '/settings/ajaxChange/'+id,
        dataType: 'json',
        async: true,
        cache: false,
        beforeSend: function() {
            content.html('');
            loading.show();
        },
        success: function(data) {
            content.html(data);
        },
        error: function() {
            content.html('Wystąpił błąd');
        },
        complete: function() {
            loading.hide();
        }
    });

Symfony控制器

 /**
 * @Route("/settings/ajaxChange/user-address", name="ajax_change_address")
 */
public function changeUserAddress(Request $request)
{
    if ($request->isXmlHttpRequest()) {
        $form = $this->createForm(UserAddressFormType::class);
        $form->handleRequest($request);

        $response = $this->render('user_settings/user_data/__user_address.html.twig', [
            'UserAddressForm' => $form->createView()
        ])->getContent();

        return new JsonResponse($response);
    }

    return $this->redirectToRoute('app_user_settings');
}

当我单击此屏幕截图上的按钮时,它的工作正常, Link for screenshot number 1

我的表单正确呈现:Link for screenshot number 2

现在我的问题是:单击屏幕快照2上的提交按钮后,如何检查该表单的有效性(我在实体中添加断言而不是空白),并执行一些操作,例如显示正确的消息?

0 个答案:

没有答案