发送文件值时JQuery ajax无法正常工作

问题描述 投票:0回答:1

我正在尝试使用下面的ajax代码将文件值发送到PHP,该文件已成功上传并存储在数据库中,但问题是我被重定向。

// submit form data
$('#myForm').submit(function () {
    var file = $("#imgInp").get(0).files[0];
    $.ajax({
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        contentType: false,
        cache: false,
        data: {
            fname: $('#fname').val(),
            lname: $('#lname').val(),
            email: $('#email').val(),
            pass: $('#myPass').val(),
            rights: $(".rights:checked").val(),
            imgInp: file,
            userID: $('#userID').val(),
        },
        success: function(result) {
            alert(result);
        }
    });
    return false;
});
javascript php jquery ajax
1个回答
0
投票

通过这样做解决了这个问题:

$(document).ready(function() {
        $('#myForm').submit(function () {
            var file_data = $('#imgInp').prop('files')[0];
            var fname = $('#fname').val();
            var lname = $('#lname').val();
            var email = $('#email').val();
            var pass = $('#myPass').val();
            var rights = $(".rights:checked").val();
            var userID = $('#userID').val();

            var form_data = new FormData();                  
            form_data.append('file', file_data);
            form_data.append('fname', fname);
            form_data.append('lname', lname);
            form_data.append('file', file_data);
            form_data.append('email', email);
            form_data.append('pass', pass);
            form_data.append('rights', rights);
            form_data.append('userID', userID);

            $.ajax({
                type: $(this).attr('method'),
                url: $(this).attr('action'),
                contentType: false,
                cache: false,
                processData:false,
                data: form_data,
            });
            return false;
        });
    });
© www.soinside.com 2019 - 2024. All rights reserved.