使用ajax使用文件提交Symfony2嵌入表单

时间:2014-01-25 07:09:45

标签: ajax forms file symfony

我正在使用Symfony 2中的文件验证创建嵌入式文件上传表单。对于文件上传,我使用了此示例http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html,并使用嵌入式表单http://symfony.com/doc/current/cookbook/form/form_collections.html。这是完美的工作,但我必须使用ajax提交表单,我该怎么做?

以下是我使用ajax提交表单的示例。

$("#submit_form").click(function() {

        var $form = $(this).parents('form:first');
        var $that = $(this);
        $.ajax({
            type: 'POST',
            dataType: 'json',
            cache: false,
            data: $form.serialize(),
            success: function($data) {
                if ($data.status == 'ok') {
                    $that.parents('#lightbox').html($data.template);
                }
            },
            url: $form.attr('action')
        });

        return false;
    });

所以问题是我无法使用ajax传递文件。

1 个答案:

答案 0 :(得分:1)

使用此插件http://malsup.com/jquery/form/。像魅力一样工作!

这可以提交表单并上传文件。您需要做的就是调用ajaxSubmit,然后实现处理响应的方法。

$('#myForm2').submit(function() { 
    $(this).ajaxSubmit({success: showResponse}); 
}); 

function showResponse(responseText, statusText, xhr, $form)  { 
    alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
        '\n\nThe output div should have already been updated with the responseText.'); 
}