Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2012, 01:11   #1
маГГ85
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 96
По умолчанию Отмена последнего действия

Здравствуйте! Ситуация такова. Есть сайт на который пользователь может загружать свои фото, менять их местами, удалять все или любую. Требуется реализовать возможность отменять последнее действие, появляется кнопка отмены, если на нее нажимаешь то отменяется последнее действие, если нажимаешь что-нибудь другое то возможность отменить предыдущее действие утрачивается на всегда.... Понимаю что здесь нужен аякс и что-то еще... Не подскажите, может где-то есть толковая демка или пример похожий реализован, либо какие библиотеки или фреймворки использовать?
маГГ85 вне форума Ответить с цитированием
Старый 09.02.2012, 08:26   #2
KPEATuBHO
Форумчанин
 
Аватар для KPEATuBHO
 
Регистрация: 03.09.2010
Сообщений: 197
По умолчанию

В момент выполнения действия в сессию пишите идентификатор действия с его параметрами (например если это загрузка картинки $_SESSION['last_task']['action']="photo_added"; $_SESSION['last_task']['params']['filename']="filename.jpg" ), после чего на кнопарь отмены действия пишите функцию которая по заданным в сессии действию и параметрами выполняет отмену. Ничего сложного, только перед тем как в сессию будете писать выполняемое действие не забудьте unset для $_SESSION['last_task']. Все это можно аяксом бахнуть.
KPEATuBHO вне форума Ответить с цитированием
Старый 09.02.2012, 13:34   #3
маГГ85
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 96
По умолчанию

Цитата:
Сообщение от KPEATuBHO Посмотреть сообщение
В момент выполнения действия в сессию пишите идентификатор действия с его параметрами (например если это загрузка картинки $_SESSION['last_task']['action']="photo_added"; $_SESSION['last_task']['params']['filename']="filename.jpg" ), после чего на кнопарь отмены действия пишите функцию которая по заданным в сессии действию и параметрами выполняет отмену. Ничего сложного, только перед тем как в сессию будете писать выполняемое действие не забудьте unset для $_SESSION['last_task']. Все это можно аяксом бахнуть.
По загрузке картинки приблизительно понятно, а какая алгоритмика при удалении картинки? Нажимаю на удаление картинки, записываю в сессию параметры картинки, ее удаляю из дом и из бд, а как сделать отмену, картинка удалена из бд и дом???(При этом должна быть сохранена возможность пользователем сортировки этих картинок, то есть им номера присваиваются от 1 до макс)?
Спасибо за совет!!
маГГ85 вне форума Ответить с цитированием
Старый 09.02.2012, 14:30   #4
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Такие вещи делаются без удаления, нужно в базе у картинки создать поле isDeleted со значениями true/false
Нажали кнопку удалить, изменили флаг в базе и все больше ее никому не показываем, если на той же странице успели нажать восстановить, вернули isDeleted = false
Ну а если действительно нужно удалять картинки, то в планировщик ставим задачу и с определенным интервалом он проверяет базу и удаляет все отмеченные записи с файлами. Большие системы типа соц сетей например вообще ничего не удаляют ... )
По этому принципу можно организовать и "Корзину", где выдавать помеченные на удаление файлы с возможностью полного удаления или восстановления

Последний раз редактировалось Cronos20; 09.02.2012 в 14:34.
Cronos20 вне форума Ответить с цитированием
Старый 09.02.2012, 16:04   #5
маГГ85
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Cronos20 Посмотреть сообщение
Такие вещи делаются без удаления, нужно в базе у картинки создать поле isDeleted со значениями true/false
Нажали кнопку удалить, изменили флаг в базе и все больше ее никому не показываем, если на той же странице успели нажать восстановить, вернули isDeleted = false
Ну а если действительно нужно удалять картинки, то в планировщик ставим задачу и с определенным интервалом он проверяет базу и удаляет все отмеченные записи с файлами. Большие системы типа соц сетей например вообще ничего не удаляют ... )
По этому принципу можно организовать и "Корзину", где выдавать помеченные на удаление файлы с возможностью полного удаления или восстановления
Спасибо, очень интересная инфа!!! Так значит в соц сетях все сохраняется, только флаг ставится ну например фолс и все??? Если так то сколько терабайт занимает вконтакте?)))
маГГ85 вне форума Ответить с цитированием
Старый 09.02.2012, 16:10   #6
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Ну с технической точки зрения не удаляют, чтобы поверхность диска не фрагментировалась , может существуют еще и "секретные" мотивы)))) А терабайт там действительно иного.
Cronos20 вне форума Ответить с цитированием
Старый 09.02.2012, 16:17   #7
маГГ85
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Cronos20 Посмотреть сообщение
Ну с технической точки зрения не удаляют, чтобы поверхность диска не фрагментировалась , может существуют еще и "секретные" мотивы)))) А терабайт там действительно иного.
Тут еще такая лажа.. Нужен метод или функция для удаления картинки из ДОМ и из окна визуально и без перезагрузки на яваскрипте либо прототайп, типа детатч на джиквайр. Загрузчик написан на прототайп и джиквайр не совместим у меня(((

Я использую хайд прототайп, но он не удаляет из ДОМ((
Все вопрос решен. Всем спасибо!!!

Последний раз редактировалось маГГ85; 09.02.2012 в 16:46.
маГГ85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор последнего действия mrChester SQL, базы данных 2 21.12.2011 10:32
Отмена последнего действия пользователя ProgDel Общие вопросы Delphi 5 24.10.2010 21:23
Закрыть, Отмена. agregator Microsoft Office Excel 6 12.02.2010 09:56
Есть возможность в Дельфи на отмену последнего действия romul_ Помощь студентам 10 23.01.2009 14:06
консоль закрывается сразу после выполнения последнего действия F4RR3LL Общие вопросы C/C++ 2 14.09.2008 20:43