gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:53:21 24 4
gpt4 key购买 nike

我在发送图像时遇到问题有一个文本区域字段供客户发送照片的描述,当他发送到数据库时发送就好像所有的描述都一样,只是插入了一个描述,

我正在使用库 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>"

当 previewTemplate 由 addedfile 函数呈现时,创建一个名为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com