Привет! Человек создает запись (ноду), нажимает отправить. Все хорошо, нода добавлена, но если он нажимает в браузере назад, то попадает опять на ту же форму но заполненую информацией, чуть редактирует и отправляет заного. Создается новая нода, а это не правильно
Как можно этого избежать?
Комментарии
Как вариант, если Вам не нравится браузер - используйте другой, благо сейчас их навалом. А если делать по уму, то можно добавить кнопку "создать еще один материал" к нодам.
Причем тут браузер?
Человек после создания возвращается кнопкой назад дабы подредактировать, хорнаняет а это уже новая нода.
Кнопка "назад" это уже функционал браузера, по сути навигация по истории браузера, к сайту он не имеет никакого отношения.
Но что то с этим сделать можно? Например форму очистить после отправки и что нибудь..
Нажимая кнопку "назад" вы попадаете на страницу в её состояние перед самой отправкой данных формы, тут даже никакой аякс не поможет. А еще можно нажать правую кнопку на кнопке назад и перескочить несколько пунктов))
При том что он восстанавливает предыдущее состояние при возвращении назад, а не друпал форма
Чую для такого случая надо возвращать предпросмотр.
...
http://drupal.org/project/msnf
это чтоли?
Да нет, тут при заполнении формы и нажатии "сохранить" создается нода, и если автора что-то не устраивает, нажимает в браузере кнопку "назад"(видимо считают, что кнопка "редактировать" сделана для нубов), попадает на страницу СОЗДАНИЯ ноды с заполненными полями и аяксом с откатом на момент нажатия кнопки "сохранить", правит 2 строчки и искренне верит, что это форма РЕДАКТИРОВАНИЯ материала, после чего нажимает кнопку "сохранить" и естественно создается новый материал, для человека, не знакомого с веб технологиями и вообще не представляющему принцип работы браузеров это кажется ненормальным, мне вот интересно, при операциях с банковскими картами люди тоже всегда жмут "Назад" а потом повторить?
Я вижу всего пару вариантов решения проблемы:
1. Некая гневная надпись, на которую все равно почти никто не будет смотреть.
2. Вариант товарища qwiste, только через дополнительную валидацию формы проверять время последнего создания ноды этим автором, и выводить гневные сообщения о попытке спама.
3. Можно так же удалять предыдущую ноду, если новая создается с промежутком менее 5 минут, но это уже может вызвать батхерт среди нормальных
спамеровпользователей.4. Можно альтернуть форму и переименовать кнопку "Сохранить" в "Создать новый материал", через интерфейс перевода этого делать НЕЛЬЗЯ иначе у Вас надпись "Создать новый материал" будет по всюду.
Наиболее логичным и полезным кажется применение 2 и 4 вариантов одновременно.
А вообще, вроде бы не все браузеры сохраняют состояние полей при переходах по истории.
Или форму аяксом подгружать.
джаваскриптом можно запретить нажатие кнопок браузера(гугл знает как) и подключать этот скрипт на нужных страницах
это можно, но я такого не встречал. Нормально ли это воспримут?
это можно, но я такого не встречал. Нормально ли это воспримут?
когда лично я захожу на сайт, где запрещены какие либо функции браузера, я обычно от туда сразу ухожу, ибо по мне, это как в прокуренном тамбуре поезда.