如何提交隐藏的输入字段也连同文件在dropzone.js


How to submit the hidden input fields also along with file in dropzone.js

我是这个dropzone.js的新手,我有一个疑问,如何可以提交隐藏的输入字段值与文件一起。这是我的代码,我试图帮助指导我,如果我出错的地方。

HTML和php代码:

<?php for($i=0; $i= const; $i++){?>
<form id="upload1" method="post" enctype="multipart/form-data">
  <input type="hidden" id="key" name="key" value="<?php echo $key;?>">
  <div id="dZUpload-<?php echo $i?>" class="dropzone dZUpload">
    <div class="dz-default dz-message"></div>
    <button type="button" class="btn btn-primary pull-right submit_files" id="<?php echo $key;?>">Submit this form!</button>
  </div>
</form>
<?php } ?>
<input type="hidden" id="testkey" value=""/>

这是我的javascript代码:

for (var i = 1; i <= $('.dropzone').length; i++) {
$("#dZUpload-"+i).dropzone({
  url: "<?php echo site_url('uploadfiles.html');?>",
  paramName: "file",
  maxFilesize: 2,
  autoProcessQueue: false,
  addRemoveLinks: true,
  uploadMultiple: true,
  parallelUploads: 100,
  maxFiles: 100,
  init: function() {          
     var myDropzone = this; // closure 
     $(".submit_files").off().on("click", function(e) {
             var key = $(this).attr('id');
             e.preventDefault();
             e.stopPropagation();
             myDropzone.on("sending", function(file, xhr, formData) {                      
               formData.append("key_campiagn", key); 
             });
             myDropzone.processQueue(); 
           });    
          },
  success: function (file, response) {
    var imgName = response;
    file.previewElement.classList.add("dz-success");
  },
  addfiles: function (file) {
    alert(file);
  },
  error: function (file, response) {
    file.previewElement.classList.add("dz-error");
  }
});
}
}

我想提交btn_id值与文件。我提出了如何将这些值一起提交到指定的url。有人能帮我一下吗?

你可以在你的init函数中添加额外的值,然后再上传像这样的东西

init: function() {
    this.on("sending", function(file, xhr, formData) {
       var value = $('form#upload1 #key').val();
       formData.append("key", value); // Append all the additional input data of your form here!
    });
}

根据文档:

Dropzone将提交您在Dropzone表单中拥有的任何隐藏字段。这是提交额外数据的简单方法。你也可以用参数选项。

来源:http://www.dropzonejs.com/#tips

所以可以这样做:

<form action="/" method="post" class="dropzone" id="my-awesome-dropzone">
     <input type="hidden" value="xxx" name="nom_prenom">
     <input type="hidden" value="yyy" name="product_name">
</form>

在你的PHP文件中:

$nom_prenom = $_POST["nom_prenom"];
$product_name = $_POST["product_name"];