![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| foma07 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2007 Репутация: нет Всего: нет |
Господа программисты, подскажите как реализовать подтверждение удаления записи из БД.
Код удаления выглядит таким образом:
Что необходимо сделать, чтобы перед удалением запрашивалось подтверждение на выполнение операции? Заранее благодарю. |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
это интересный вопрос. нетривиальный.
варианта решения два. 1. неканонический, но простой: яваскриптом задавать вопрос в форме. не работает без яваскрипта 2. канонический: помежуточный скрипт, который выводит кнопки да нет и уже после этого отправляет запрос в базу. 0. обходной: Не удалять записи в в таблице физически, а помечать, как удаленные. Тогда будет не жалко удалять, поскольку всегда можно восстановить |
|||
|
||||
| brother79 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 2 Всего: 6 |
onclick="return confirm('Действительно хотите удалить?');"
Вешаешь этот обработчик в хтмл и всё, а когда уже запрос ушёл - там уже не сделаешь. |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Это самое неудачное решение. Хотя и самое простое. Лучше использовать в комбинации с другими, но нежелательно - самостоятельно.
Если исходить из основ информационной безопасности и элементарной логики, то действие должно выполняться не при отсутствии отрицательного ответа, а при наличии положительного. Если запрос пользователю не будет выведен, то удаление произойдет все равно. Это не есть правильно. |
|||
|
||||
| foma07 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2007 Репутация: нет Всего: нет |
Вариант с пометкой на удаление на проходит в принципе. База и без того обрастает хорошо.
По поводу ява: состряпал такой скриптик но он работать не хочет (в яве я почти ничего не понимаю но делал по образу и подобию)
Это сообщение отредактировал(а) foma07 - 8.9.2009, 13:00 |
||||
|
|||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
а почему там какая-то confirmSubmit а не confirm?
|
|||
|
||||
| foma07 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2007 Репутация: нет Всего: нет |
Как уже говорил, я в яве очень сильно плаваю, нашел такой примерчик и внедрил. Если не правильно то как необходимо?
|
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
не понял. что значит "как необходимо"?
во-первых, я выше писал, что необходимо делать защиту, которая по умолчанию форму не отошлет. каковому условию проверка с confirm не отвечает. если делать на яваскрипте правильно, то экшен формы делать # и менять его при положительном ответе во-вторых, если уж хочется его применить, то почему просто не скопировать код из сообщения выше? Это сообщение отредактировал(а) Ипатьев - 8.9.2009, 13:36 |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
потому как надо думать что на что вешать
для отлова события отправки формы есть обработчик onsubmit:
|
|||
|
||||
| brother79 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 2 Всего: 6 |
судя по содержанию вопроса - ИМХО как раз подойдёт простой вар-нт, хотя если есть желание можете предложить другой вар-нт, более удачный исхотя из основ информационной безопасности. А зачем так сложно? Что не написать return confirm("Вы действительно хотите удалить водилу?") И там у тебя кавычка не там стоит, надо перед скобкой, а не после. |
|||
|
||||
| foma07 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.11.2007 Репутация: нет Всего: нет |
Спасибо!!!!! Все заработало!!!
|
|||
|
||||
| brother79 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 2 Всего: 6 |
А зачем так сложно? Если уж увлекаться предохранениями, можно просто в скрипте сделать что-то типа if (confirm('...')) { form.submit() } И повесить это не на submit а на button или ссылку, или вообще на любую графическую кнопку. Только я там мог немного в синтаксисе ошибиться, но смысла в описанных выше действиях по замене не вижу. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
| brother79 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 18.8.2009 Репутация: 2 Всего: 6 |
||||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
логично.
вот это правильный подход |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |