SortableJS - отправить новый отсортированный список элементов при отправке

Я использую JS-библиотеку SortableJS и пытаюсь отправить только что отсортированный массив при отправке.

JS:

var originalArray;
var sortable = Sortable.create(selection, {
  handle: '.bars-move',
  animation: 150,
});

var modalForm = document.getElementById("modalForm");
  if (modalForm  !== null ){
    modalForm.addEventListener('submit', function(e) {
      var formData = new FormData(modalForm);
      e.preventDefault();
      var request = new XMLHttpRequest();
      request.open(modalForm.method, modalForm.action, true);
      var cookies = parse_cookies();
      request.setRequestHeader('X-CSRFToken', cookies['csrftoken']);
      request.onload = function() {
        /// send the new Array here
      };
      request.send(formData);
    });
  };

Любые советы приветствуются!


person Ben    schedule 17.04.2020    source источник


Ответы (1)


Самый простой способ сделать это — просто отправить сортируемый массив в submit:

var sortable = Sortable.create(selection, {
    handle: '.bars-move',
    animation: 150,
  });

а также

var modalForm = document.getElementById("modalForm");
if (modalForm  !== null ){
    modalForm.addEventListener('submit', function(e) {
      var formData = new FormData(modalForm);
      e.preventDefault();
      var request = new XMLHttpRequest();
      request.open(modalForm.method, modalForm.action, true);
      var cookies = parse_cookies();
      request.setRequestHeader('X-CSRFToken', cookies['csrftoken']);
      formData.append('sortableArray', sortable.toArray());
      request.send(formData);
    });
};
person Ben    schedule 20.04.2020