Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.12.2020, 08:22
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Как удалить динамический элемент?
Есть форма для динамического добавления картинок

<form action="uploads" method="post" enctype="multipart/form-data">
<div id="uploads_files">
    <input type="file" name="images[]" multiple accept="image/*"/>
    <button type="submit">Сохранить</button>
</div>


JS-скрипт добавления картинок

(function(){
if(!window.File || !window.FileList || !window.FileReader)
    return console.log("Your browser does not support File API");
document.getElementById("uploads_files").addEventListener("change", function(event) {
    var clone = event.target.cloneNode(),
        files = event.target.files,
        output = document.getElementById("result");
    clone.value=null;
    this.appendChild(clone);
    this.focus();
    for(var i = 0; i < files.length; i++) {
        var file = files[i];
        if(!file.type.match('image'))
            continue;
        var picReader = new FileReader();
        picReader.addEventListener("load", function(event) {
            var picFile = event.target;
            var div = document.createElement("div");
            div.className = 'preview';
            div.innerHTML = "<button type='button' href='' class='del_img'>Удалить</button><img class='thumbnail' src='"
                + picFile.result + "'" + "title='" + picFile.name + "'/>";
            output.insertBefore(div, null);
        });
        picReader.readAsDataURL(file);
    }    
});
})();


Задача в том, чтобы сделать возможность удалять картинки пользователю. В JS я не силен, а знаний JQuery хватило на то, чтобы выдать такой скрипт

$(document).on('click', '.del_img', function() {
    $(this).parents("div:first").remove();
});


Добавление и удаление происходят нормально. Но, только в браузере. Например, выбрал юзер 6 картинок. Потом посмотрел и 2 удалил. Визуально они удалились, но в контроллер передаются все равно 6 штук. Посоветуйте, как правильно сделать удаление.

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2020, 09:06
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

На сервер все равно будут передаваться те картинки, которые находятся в
в <input type=file>.files
И оттуда их не удалить.
Надо вручную снова формировать список картинок, которые должны передаться, помещая их в FormData. И передавать в запросе не значения полей, а FormData.
Ответить с цитированием
  #3 (permalink)  
Старый 28.12.2020, 08:35
Аспирант
Отправить личное сообщение для LingVist Посмотреть профиль Найти все сообщения от LingVist
 
Регистрация: 21.09.2010
Сообщений: 39

Даа, не думал, что все так сложно. Ну ладно, пойдем другим путем
Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выбрать элемент, который отправлялся ajax Nifler jQuery 5 20.08.2015 08:42
Как выбрать элемент, который отправлялся ajax Nifler jQuery 2 20.08.2015 08:25
Как заменить DOM элемент user_name Общие вопросы Javascript 8 23.05.2015 11:14
Как добавить элемент в XML через DOM используя PHP? bayah Серверные языки и технологии 6 11.08.2010 13:33
Как удалить элемент из документа HTML Dima00782 Общие вопросы Javascript 2 28.06.2010 17:32