Объединить несколько ответов AJAX в одном массиве - PullRequest
0 голосов
/ 12 октября 2018

Я реализовал dropzone.js на одном сайте.Когда я удаляю несколько файлов в div, dropzone.js отправляет один запрос за раз, что хорошо для производительности php и ограничения загрузки файлов.

Однако недостатком этого является то, что я не мог понять, как ловитьвсе ответы и объединить их в один массив.В моем массиве я могу сохранить только значение последнего ответа.

Вот мой код:

$("#dropzoneJs").dropzone({
  maxFiles: 2000,
  success: function(file, response) {
    var array = [];
    $.each(response, function() {
      $.each(this, function(k, v) {
        v = response.data.image;
        console.log(v);
        array.push(v);
      });
    });

    var array1 = JSON.stringify(array);
    $('#fdata').val(array1);
  }
});

Я перетащил два разных файла, и когда я сохранял два ответа в массиве, яполучить только последний ответ в этом массиве, умноженный в два раза.

["/images/aluguer/1.jpg","/images/aluguer/1.jpg"]

Что мне нужно:

["/images/aluguer/1.jpg","/images/aluguer/2.jpg"]

Вывод на Console.logсвязанные):

enter image description here

1 Ответ

0 голосов
/ 12 октября 2018

Вам необходимо объявить массив вне функции, иначе вы начинаете с пустого массива каждый раз, когда он используется.

var dropZoneArray = [];

$("#dropzoneJs").dropzone({
  maxFiles: 2000,
  success: function(file, response) {
    $.each(response, function() {
      $.each(this, function(k, v) {
        v = response.data.image;
        console.log(v);
        dropZoneArray.push(v);
      });
    });

    var array1 = JSON.stringify(dropZoneArray);
    $('#fdata').val(array1);
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...