javascript - 无法发送多个表单字段 formdata dropzone.js

标签 javascript input form-data dropzone.js

我在发送图像时遇到问题,其中有一个文本区域字段供客户端发送照片的描述,当他发送到数据库时,发送的图像就好像所有图像都具有相同的描述,而仅插入一个描述,

我正在使用库 DROPZONE.JS http://dropzonejs.com/

按照我的代码操作..请帮助我。

Dropzone.options.upload = {
    thumbnailWidth: 246,
    thumbnailHeight: 173,
    enqueueForUpload:false,
    paramName: "userfile",
    sending: function(file, xhr, formData) {    
        formData.append("titulo", $("#titulo").val());
        formData.append("evento", <?php echo $this->uri->segment(4); ?>);
        formData.append("capa", $("#cap").val());
    }
};

function upload() {
    var dz = Dropzone.forElement("#upload");
    for (var i = 0; i < dz.files.length; i++) {
        dz.filesQueue.push(dz.files[i]);
    }
    dz.processQueue(); 
}

最佳答案

如上所述,整个文档中只能有一个 DOM 元素具有 id,否则您将会遇到问题。这可以通过将文件名添加到文本框字段的 ID 来即时解决。

在预览模板中为文本框添加代码

previewTemplate: "<div class=\"dz-preview dz-file-preview\"> ...
<input type=\"text\" class=\"titulo\" data-dz-titulo >
...
data-dz-errormessage></span></div>\n</div>"

当通过addedfile函数渲染previewTemplate时,创建一个名为titulo + file.name的id,为您的元素提供唯一的id。这可以通过在addedfile函数中添加一行代码来完成。

addedfile: function(file) {
    file.previewElement = Dropzone.createElement(this.options.previewTemplate);
    ...
    file.previewElement.querySelector("[data-dz-titulo]").id = "titulo" + file.name;
    ...
    file.previewElement.querySelector("[data-dz-size]").innerHTML = this.filesize(file.size);
},

现在您还必须使用文件名在发送函数中获取匹配的标题。

sending: function(file, xhr, formData) {
    var filetitulo = document.getElementById('titulo' +file.name).value;
    formData.append("titulo", filetitulo);
    });

关于javascript - 无法发送多个表单字段 formdata dropzone.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875289/

相关文章:

javascript - jQuery 的 hashchange 事件如果我直接打开一个带有 hash 的页面就不起作用

Javascript 使用 name 属性选择表单元素

javascript - 我怎样才能在 javascript 中从 FormData 获取数据?

javascript - 输入不提交更改时的表单

javascript - 使用 formData 的 Ajax 文件上传在大文件上失败

javascript - 只有 JQuery 可以与 FormData 一起使用吗?

javascript - jQuery ajax - xhr.responseText 始终未定义

javascript - 如何在 Javascript 中获取逗号之间的文本?

javascript - 自定义布局 div,固定 Div 但浏览器的响应大小,响应文本

jQuery这个表单输入