Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Удаление файла по отсутствию данных о нем (https://javascript.ru/forum/dom-window/51875-udalenie-fajjla-po-otsutstviyu-dannykh-o-nem.html)

kostyanet 23.11.2014 15:03

Удаление файла по отсутствию данных о нем
 
Удаление файлов обычно происходит по команде переданной на сервер ссылкой с параметром, или оно же через аякс, или кнопкой на форме, или чек-боксом "Удалить".

По совокупности обстоятельств ни один из перечисленных способов мне не понравился. Зато очень понравился такой: на каждый файл делается свой чек-бокс "Удалить", но, checked.

Во-первых унчеканный файл выглядит уже удаленным, во-вторых и самое главное, чеки на полную халяву передают сортировку. Она была сделана через скрытое поле, js осматривал содержание тумбореза и после каждого перемещения тумбы обновлял его. Оказалось что чеки запростяк уезжая на сервер в том порядке, в котором они встречаются в DOM - сами собой передают сортировку.

Во-вторых имена чеков тождественны имени кнопки (поля file). Я и раньше так делал, но с текстовыми полями - у file свой namespace, в post его никогда не будет, он как это - мультипарт. Таким образом через чеки имена файлов гоняются туда-сюда как это происходит с обычными текстовыми полями и всякими там списками.

Так вот, если за php и html я более-менее спокоен, то в случае глюка js, который после аякса внезапно забудет наделать этих чеков на вновь закачанные файлы - они просто удалятся при следующей отправке формы. Нет чеков - значит юзер отчекал, хочет стереть - файл стирается.

Визуально, конечно, выглядит наборот. Чеки замаскированы меткой которая видима как серый Х. Чек в это время чекед, а если юзер жмет на Х, Х становится красным, вылезает попап насчет удаления и после этого чек - унчекан и значит на сервер его валуе вообще не придет. И файл, по вычитанию из дефолтного значения остатка - будет стерт.

Вопросы такие. Насколько вообще это через ж; как можно повысить надежность - какие-то проверки на какие-то события, что если чеков нет - то х отправишь и все такое. Кто-нить так делал? В смысле если делал то как выходило.

kostyanet 26.11.2014 01:23

Ларик просто открывался. Не открывался просто, а просто - открывался. Не был закрыт. Надо было крышку открыть и все.

Надо сделать return confirm('Будут удалены следующие файлы: список').


Часовой пояс GMT +3, время: 06:03.