Как исправить проблему с перетаскиванием JS? - PullRequest
0 голосов
/ 12 апреля 2019

С этим кодом я хочу перетащить изображение. Когда я опускаю, для каждого элемента я вызываю с помощью ajax страницу php, чтобы создать запись в db. Ajax возвращает мне data.object, чтобы поместить элемент в мою HTML-страницу.

У меня есть этот JS-код для управления перетаскиванием файлов с компьютера ...

var listaId = new Array();

function dropHandler(ev) {

  // Prevent default behavior (Prevent file from being opened)
  ev.preventDefault();

  var div = document.getElementById('raccoltaFile');
  var percorso = div.getAttribute('data-percorso');
  var id = div.getAttribute('data-id');

  if (ev.dataTransfer.items) {
    // Use DataTransferItemList interface to access the file(s)
    for (var i = 0; i < ev.dataTransfer.items.length; i++) {
      // If dropped items aren't files, reject them
      if (ev.dataTransfer.items[i].kind === 'file') {
        var file = ev.dataTransfer.items[i].getAsFile();
    var foto = new FormData();

    foto.append('fotoOggetto', file);
    foto.append('nome', file.name);
    foto.append('percorso', percorso);
    foto.append('idSottocat', id);

    $.ajax({
            url: '../php/model.php?az=dragDropImage&id='+id+"&percorso="+percorso,
        data:foto,
        processData:false,
            contentType:false,
            type: 'POST',
            dataType: 'json'
        })
        .done(function(data){
        if(data.doc_id) {
        $("#raccoltaFile").append("<div class='row' style='border-bottom: solid 2px grey'><div class='col-3'><img class='img-thumbnail' src='"+data.doc_url+"' /></div><div class=col-4>"+data.doc_nome_file+"</div><div class='col-3'><button class='btn btn-danger' onClick='cancellaFotoProvvisoria()'>Elimina</button></div></div>");
        listaId.push(data.doc_id);
        } else {
        alert("Hai inserito un'immagine fuori dai parametri accettati");
        }

        })
        .fail(function(){
            alert("Qualcosa è andato storto.");
        });

      }
    }  
  }
  alert(listaId);
}

Первый идентификатор элемента, который я перетаскиваю, не входит в массив listaId, а второй да. Вы говорите, почему?

...