使用jQuery ajax方法时,数据库文件链接字段为空

时间:2015-11-24 11:05:25

标签: php jquery ajax forms

我有一个ajax表单,我正在使用validate插件以及jQuery form 插件,现在如果我在submithandler中使用表单插件方法(这个是一个validate.js参数)方法,如下所示:

submitHandler: function(form) {
    $(form).ajaxSubmit({
        type:"POST",
        data: $(form).serialize(),
        url:"inc/database.php",
        success: function() {
            $('#testimonials :input').attr('disabled', 'disabled');
            $('#testimonials').fadeTo( "slow", 0.15, function() {
                $(this).find(':input').attr('disabled', 'disabled');
                $(this).find('label').css('cursor','default');
            });
        },
        error: function() {
            $('#testimonials').fadeTo( "slow", 0.15, function() {
            });
        }
    });
}

我有一个包含两个文本字段然后是文件上传字段的表单,现在使用上面的代码,所有3个字段都保存到数据库中,但是现在如果我编写一个纯jQuery Ajax函数,就像这样: / p>

submitHandler: function(form) {

       $.ajax({
                type        : 'POST', // define the type of HTTP verb we want to use (POST for our form)
                url         : 'inc/database.php', // the url where we want to POST
                data        : $(form).serialize(), // our data object
                dataType    : 'json', // what type of data do we expect back from the server
                encode      : true
        }).done(function(data) {

            // log data to the console so we can see
            console.log($(form).serialize()); 
            // here we will handle errors and validation messages
        }); 

}

这两个文本字段保存到数据库中,但文件链接没有保存在数据库中,如果我检查phpmyadmin,我看到,保存图像链接URL的字段为空。为什么会这样?我没有看到有和没有表单插件的jQuery代码有什么区别,我在这里缺少什么?任何人都可以解释这个错误吗?

P.S。因为SO声明必须隔离错误,所以我已经对这个Senario进行了广泛的测试,并且已经将jQuery代码归结为罪魁祸首,因此没有发布任何支持的代码,因为我认为这将是无关紧要的。

1 个答案:

答案 0 :(得分:0)

使用

var formdata = new FormData($('form')[0]);
 $.ajax({
..
data:formdata,
..
});

而不是序列化()数据。