Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 07.12.2019, 19:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от maxg5
Применил Ваш код к своему сайту.
Один в один не надо, это пример, а у вас должны быть все обработчики - ошибок запроса и прочее, к тому же не мешало бы на время запроса делать недоступной кнопку submit.

Сообщение от maxg5
при нажатии на кнопку Отправить окно закрывается и все.
Ну все правильно, в success что делается? А вот что:

$('pre').text(d); //ответ помещаем в ...
f.closest('.fancybox-skin').find('a').trigger('click') //закрываем окно

Кстати, можно закрыть и так $.fancybox.close(), никаких других открытий одновременно у вас не видно.

А судя по ответу, сервер не дурак, что хорошо, проверяет данные пришедшие, и если обязательно поле пустое, то возвращает сообщение. Вот только плохо, что это обычный текст, так что не понять, то-ли были ошибки приема, то-ли все Ок. Для диалога удобнее json-формат, вот тогда закрывать окно нужно только если север не вернул ошибок.
Ответить с цитированием
  #22 (permalink)  
Старый 07.12.2019, 19:54
Аспирант
Отправить личное сообщение для maxg5 Посмотреть профиль Найти все сообщения от maxg5
 
Регистрация: 16.08.2016
Сообщений: 89

Получается мне нужно обработчики дописать? Это в php писать как я понимаю?
По итогу получается нужно мой PHP подправить под Ваш код?
Ответить с цитированием
  #23 (permalink)  
Старый 07.12.2019, 20:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Прервали меня, отправил автоматом, но не все.

Если нужно чтобы и по отправлению и первой формы (та что в окне), после отправки вывести сообщение об успешной ее приемке, а потом закрыть окно спустя время, то нужно не новое окно открывать, а использовать это же, заменив его контент (форму) на сообщение. Ну и закрыть по таймеру.

Сообщение от maxg5
Получается мне нужно обработчики дописать? Это в php писать как я понимаю?
Не только обработчик, но и серверный код, он должен возвращать json, например, если в нем будет свойcтво error, то вывести это сообщение. Куда вывести, это уже дело хозяйское, можно в форму добавить скрытый элемент, в который помещать ошибку и показывать его, можно детализировать какие конкретно поля не заполнены и показывать всплывающие сообщения возле них, и т.д., и т.п.

А вообще, добавьте обязательным полям атрибут required и все браузеры поддерживающие его не позволят отправлять форму с незаполненными такими полями. А те что не поддерживают получат ошибку от сервера.

В общем нужно не просто жмахнул и отправил форму, а писать диалог клиент-сервер.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрытие модального окна по клику Stas1985 Элементы интерфейса 6 29.09.2019 18:02
Dojo dialog автоматическое масштабирование диалогового окна и содержимого Aleksey81 Dojo toolkit 0 09.10.2016 23:43
FancyBox: Размер модального окна больше размеров окна браузера (высота), как сделать? clgs Events/DOM/Window 3 22.01.2015 17:13
Автоматическое закрытие окна qwe88 Общие вопросы Javascript 0 14.06.2014 14:22
Событие на закрытие окна браузера пользователем Stilus Events/DOM/Window 3 18.01.2014 00:42