![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| KonstRuctor |
|
||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Привет! Строю алгоритм изменения-удаления данных. Удобно делать небольшие формы в модальном окне, чтобы не создавать кучу отдельных файлов для редактирования каждого элемента сайта.
Опишу сперва мой алгоритм, потом задам пару вопросов, что у меня не выходит. Итак, нам потребуется jquery и плагин thickbox для создания модальных окон. Верстка основной страницы modal.php такая:
Далее верстка формы, которая появляется в окне, файл ajax.php
Далее скрипт валидации и отправки формы valid.js
И скрипт, который отвечает за проверку и, в дальнейшем, за вставку данных в базу valid.php
И совсем коротенький скриптик, который убирает сообщение со страницы верстки timeout.js
Вопросы, их три. 1) Как использовать скрипт valid.js универсально? Сейчас в нем жестко прописан редирект на определенную страницу. А если я его буду вызывать с разных мест сайта, мне придется плодить данный скрипт для каждой страницы! только чтобы менять место редиректа. 2) Всплывающее окно, которое выскакивает на странице верстки после удачного редактирования данных тут же красиво убирается. Но если нажать F5, оно выскакивает снова. Этот момент не особо страшный, так как это админка, и админ не дурак жать F5, но с точки зрения красоты работы это ведь есть плохо? 3) Как в этом самом окне показывать разные надписи согласно ситуации? На одной странице можно, к примеру, и удалять и редактировать данные. Чтобы вместо "Все нормально" говорить "Удалено успешно". Сейчас надпись жестко приписана в теле страницы. Спасибо! |
||||||||||
|
|||||||||||
| CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 3 Всего: 28 |
А вы что не слышали про функции? и передачи им параметров?? нужно правильно продумать метод редактирования, чтобы после обновления страницы данные не отправлялись вновь. |
|||
|
||||
| KonstRuctor |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Я учусь, поэтому и задал вопрос... Признаюсь, в ответе ничего не понял...
Я понимаю, что нужно подумать над тем, чтобы по кнопке F5 данные не отправлялись вновь. В моем алгоритме по кнопке F5 происходит обновление страницы с параметрами GET: modal.php?message=ok И раз пришло это самое "ok", снова показывается div и так по кругу до посинения. Расскажите пожалуйста про функцию и передачу параметров. У меня есть функция success: function(msg)... которая вызывается при удачном выполнении ajax. То есть мне нужно внутри этой функции вызвать еще одну функцию.... и в ней вызвать редирект? Не понимаю. |
|||
|
||||
| CruorVult |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 3 Всего: 28 |
Нужно делать не через анонимную ф-ю:
|
||||
|
|||||
| KonstRuctor |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Хм. Что-то не так. Не работает.
Что я делал: 1) исправил свой скрипт valid.js 2) добавил новый скрипт с одной строчкой
3. Подключил оба скрипта. Не работает валидация, не работает перенаправление. |
|||
|
||||
| CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 3 Всего: 28 |
скобку забыл + учитесь ЖС отлаживать ctrl+shift+O Это сообщение отредактировал(а) CruorVult - 27.7.2011, 14:28 |
|||
|
||||
| KonstRuctor |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Так инструментами еще пользоваться надо уметь Сейчас домучиваю, пока не выходит ничего Добавлено через 13 минут и 46 секунд Получилось решить мой вопрос (1) -- универсальность скрипта valid.js Решение такое: 1) модифицируем скрипт valid.js
2) модифицируем форму, которая появляется в модальном окне (ajax.php)
Таким образом при успешном заполнении формы (ошибок нет) программа берет имя файла для перенаправления, в данном случае -- modal. Что осталось не сделанным? В случае использования пагинатора не получится передать номер страницы, на которую надо перенаправить админа. Допустим, админ редактирует новости и оказался на 3 странице в перечне новостей. Жмет кнопку "edit", редактирует заголовок новости в модальном окне. В случае успеха он должен попасть куда-то сюда: news.php?page=3 а попадет опять в начало и вынужден будет (проклиная программиста) листать пагинатором |
||||
|
|||||
| KonstRuctor |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Проблему с нажатием кнопки F5 попробовал решить с помощью cookies.
Вот мое решение: 1) Правим файл valid.php. Если валидация прошла успешно, ставим куку:
2) В файле modal.php, в самом начале, до любого вывода добавляем:
Таким образом обходится проблема нажатия кнопки F5, никакие параметры не передаются по GET, что и требовалось сделать. Остается нерешенной проблема с пагинатором и передачей сложного пути редиректа. |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |