如何将ajax send()函数的不同类型的数据传递给PHP?

时间:2017-10-25 11:31:16

标签: javascript ajax

我正在尝试使用ajax使用vanilla javascript发送文件(pdf文件)以及用户文本输入,请不要发布任何jquery答案。

formData包含pdf文件,formVal包含用户文本输入。

如果我从request.send函数中删除formVal,那么文件就会被上传,但如果我包含formVal,则发送函数不起作用,因为没有上传任何内容。

var formData = new FormData();
var dropzone = document.getElementById('dropzone');
var sub = document.getElementById('subForm');

var uploadFile = function (formVal) {
    var request = new XMLHttpRequest();

    request.onload = function(){
        var data = this.responseText;
        console.log(data);
        //window.location.reload();
    }
    request.open('post', 'index.php');
    request.send(formData, formVal);
}
dropzone.ondrop = function (event) {
    event.preventDefault();
    document.getElementById('para1').innerHTML = "File uploaded";

    var files = event.dataTransfer.files;
    //uploadFile(event.dataTransfer.files,);
    var i;
    for(i = 0; i<files.length; i = i+1){
        formData.append('file[]', files[i]);
    }
    return false;
}

sub.onclick = function () {
    var code = document.getElementById('cCode').value;
    var size = document.getElementById('cSize').value;
    var dd = document.getElementById('cDD').value;
    var val = "c=" +code+"&s="+size+"&d="+dd;
    if(formData.get('file[]') === null){
        alert("Drang and drop PDF file");
    }else{
        uploadFile(val);
    }


}

0 个答案:

没有答案