Если бы такое и было возможным, объединение выбранных для загрузки и ранее выбранных (хотя это можно сделать,только не непосредственно с коллекцией выбранных), то делать этого совсем не нужно потому, что это накладно, кроме расточительства ничего не дает, да и просто глупо.
Если у товара есть изображения, значит при редактировании товара их нужно выводить в списке согласно установленного им порядка. При этом элементы списка будут содержать и скрытые поля определяющие сортировку. Кроме этого можно в список поместить и флажок для выбора удаления изображения.
Вновь добавляемые изображения помещать предварительным просмотром в этот же список, также имеющим скрытые поля для порядка сортировки и удаления из коллекции выбранных.
При каждой смене порядка (либо drag-and-drop или иным способом) сортировки, выбора удаления, у коллекции скрытых полей изменяется значение согласно их индексации в наборе.
Скрытые поля и флажки для удаления уже имеющихся изображений и такие же поля у добавляемых имеют разные имена полей, например upd и add. При этом поля имеющихся изображений связаны с ними по идентификатору (или иным способом, это зависит от того как хранятся данные на сервер и как они связаны с товаром), а у добавляемых изображений по их индексу в коллекции.
Для того чтобы в списке различать имеющиеся и добавляемые изображения, элементы списка можно стилизовать, или даже сами загруженные изображения в списке выводить в градациях серого.
Выбор Удалить во вновь выбранном для загрузки означает не загружать его на сервер. Сама загрузка как и редактирование всех параметров товара производится посредством Ajax. Используя FormData можно загрузить из коллекции выбранных только те, что не выбраны для удаления.
|