22.08.2017, 18:17
|
Новичок на форуме
|
|
Регистрация: 22.08.2017
Сообщений: 5
|
|
реализовать блокировку кнопки на определенное время после клика
Подскажите, пожалуйста, как реализовать блокировку кнопки на определенное время после клика. Т.е., пользователь зашел на страницу, нажал на кнопку, информация ушла, а кнопка заблокировалась, на часов 20-ть. И перезагрузка страницы не снимала бы блокировку. Код кнопки <input type="submit" name="submit" class="button-normal active-gradient light-color dark-gradient-hover" value="{$L['change']}" id="submit" />
Заранее благодарен!
|
|
22.08.2017, 18:25
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Один нажимает и у всех на 20 часов она блокируется?
|
|
22.08.2017, 18:41
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
регистрация на сайте есть?
|
|
22.08.2017, 18:47
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от sanya300
|
как реализовать блокировку кнопки на определенное время после клика
|
Сервер должен отвергать последующий прием, а по уму так вообще не выводить форму в течении этого времени.
|
|
22.08.2017, 19:04
|
Новичок на форуме
|
|
Регистрация: 22.08.2017
Сообщений: 5
|
|
дополню регистрация есть. кнопка
регистрация есть. кнопка расположена на странице редактирования объявления зарегистрированного пользователя и отправляет соответствующую форму. доска объявлений абсолютно бесплатная. но в ней не было реализована возможность поднятия объявлений самим пользователем. по просьбам трудящихся прикрутил возможность поднятия объявлений путем клика по кнопке редактирования. но начались злоупотребления. поэтому решил ограничить возможность поднятия временем. а вот как реализовать не знаю. неделю по форумам, но пока никак.
|
|
22.08.2017, 19:14
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
sanya300,
В чем проблемы то? Во время T на сайте N пользователей, регистрированные они или нет не важно, коли всем блокировка. В момент времени Tₓ пользователь Nₓ отправляет форму. Это время пишется в базу. Любой последующий запрос формы, это проверка времени Tₓ + 20 часов, если не истекло, то прием отвергается.
Блокировать же кнопки сразу всем нельзя, можно только по запросу клиента, если Ajax, то по асинхронному запросу.
|
|
22.08.2017, 19:32
|
Новичок на форуме
|
|
Регистрация: 22.08.2017
Сообщений: 5
|
|
всем пользователям кнопки блокировать и не нужно. нужно заблокировать конкретную кнопку, расположенную на странице редактирования конкретного объявления зарегистрированного пользователя. Чтобы было так, пользователь зашел в свой кабинет, затем перешел на страницу одного из объявлений, жмакнул изменить, изменения сохранились, объявление поднялось, а редиректом пользователя перекинуло на страницу с самим объявлением (редирект есть). Если же пользователь вернется на страницу с редактированием того же объявления, то кнопка будет заблокирована. В тоже время другие свои объявления поднять и отредактировать он сможет, но только по одному разу. В теории вроде как понятно, но как сделать кодом...
|
|
22.08.2017, 19:36
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от sanya300
|
всем пользователям кнопки блокировать и не нужно.
|
Пишите время запроса для каждого пользователя (может я устал или провел не так, что-то "все" в уме держалось). С этим проблем нет? Сервер проверяя данное в базе может решить о кнопке/форме?
По большому счету в данном случае клиент боком с его JS, все должен решать сервер.
|
|
22.08.2017, 19:43
|
Новичок на форуме
|
|
Регистрация: 22.08.2017
Сообщений: 5
|
|
да, точно.... время изменяется.. может есть пример или готовый скрипт?
|
|
22.08.2017, 19:52
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от sanya300
|
может есть пример или готовый скрипт?
|
Скрипт чего, если данное должен возвращать SQL запрос?
SELECT datefield + INTERVAL 20 HOUR FROM table
|
|
|
|