Динамически изменяйте URL-адрес Dropzone - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь изменить URL в dropzone, и информация, которую я нашел, похоже, не работает для меня. У меня есть форма, в которую я помещаю dropzone с использованием JS. Я хотел бы изменить URL-адрес Dropzone в зависимости от того, какой параметр выбран в раскрывающемся списке. Вот код, с которым я работаю:

Dropzone

<select id="bioImages" name="bioImages" style="width: 300px;" onchange="urlSetter();">
        <option value="countryFlag">Country Flag</option>
        <option value="locationImg">Location Image</option>
        <option value="nationalAnthemaud">National Anthem</option>
        <option value="countryNameaud">Country Name</option>
</select>
<form id="dropzoneUpload" action="" enctype="multipart/form-data" method="post">
    <div class="clearfix">
        <br><br>
    </div>
    <div class="half clearfix">
        <div id="dZUpload" class="dropzone" name="fileUpload">
        <div class="dz-default dz-message">
            Drop image/audio here or click to upload (system supports 1 file per category).
        </div>
        </div>
     </div>
</form>

Добавить Dropzone

function addDropzone() {
    $(document).ready(function () {
        Dropzone.autoDiscover = false;
        $("#dZUpload").dropzone({
            url: "url.com",
            addRemoveLinks: true,
            success: function (file, response) {
                console.log(response);
             }
        });
    });
}

Изменить URL

function urlSetter() {
    var drop = document.getElementById('dropzoneUpload');
    if(type.includes('aud')) {
        drop.options.url = 'url.com';
    } else {
        drop.options.url = 'url2.org';
    }
}

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

function addDropzone() {
  $(document).ready(function () {
    Dropzone.autoDiscover = false;
    $("#dZUpload").dropzone({
      url: "url.com",
      addRemoveLinks: true,
      success: function (file, response) {
      	console.log(response);
      },
      init: function () {
      	this.on("processing", function (file) {
        	this.options.url = dropzonePostUrl;
       	});
      }
    });
  });
}
var dropzonePostUrl='url.com';
function urlSetter() {
  var drop = document.getElementById('dropzoneUpload');
  if(type.includes('aud')) {
		dropzonePostUrl = 'url.com';
  } else {
		dropzonePostUrl = 'url2.org';
  }
}
<select id="bioImages" name="bioImages" style="width: 300px;" onchange="urlSetter();">
  <option value="countryFlag">Country Flag</option>
  <option value="locationImg">Location Image</option>
  <option value="nationalAnthemaud">National Anthem</option>
  <option value="countryNameaud">Country Name</option>
</select>
<form id="dropzoneUpload" action="" enctype="multipart/form-data" method="post">
	<div class="clearfix">
	  <br><br>
	</div>
	<div class="half clearfix">
	  <div id="dZUpload" class="dropzone" name="fileUpload">
		  <div class="dz-default dz-message">
		  	Drop image/audio here or click to upload (system supports 1 file per category).
		  </div>
	  </div>
	</div>
</form>
0 голосов
/ 29 августа 2018

Вы не можете изменить URL-адрес dropzone, используя этот способ. поэтому для этого сначала создайте глобальную переменную и при раскрытии события изменения (urlSetter) установите значение этой переменной, как показано ниже:

var dropzonePostUrl='url.com';
function urlSetter() {
    var drop = document.getElementById('dropzoneUpload');
    if(type.includes('aud')) {
        dropzonePostUrl = 'url.com';
    } else {
        dropzonePostUrl = 'url2.org';
    }
}

Вам также необходимо изменить код инициализации Dropzone, как показано ниже:

function addDropzone() {
    $(document).ready(function () {
        Dropzone.autoDiscover = false;
        $("#dZUpload").dropzone({
            url: "url.com",
            addRemoveLinks: true,
            success: function (file, response) {
                console.log(response);
             },
            init: function () {
               var _this=this;
                this.on("processing", function (file) {
                    _this.options.url = dropzonePostUrl;
                });
            }
        });
    });
}

Вы можете изменить URL в событии обработки.

...