Как сделать простое web-приложение по записи на прием?
Прошу натолкнуть на мысль или подсказать готовое решение.
Необходимо сделать простое приложение на сайте по записи на прием. Вывод календаря с датами месяца (зеленым свободные даты, красным - занятые), при клике на зеленые выдавать свободное время на день (также занятые закрашивать красным и делать не активными), после выбора времени окошко с личными данными и кнопкой отправки. Без цен, без отправок e-mail подтверждений, без админки, без сложного функционала, просто сохранять дату и данные буду в БД .
Сколько изучал и искал готовое - все не то, не могу понять как реализовать самому.
Понял, что на стороне view (отображения у клиента) рисуем обычный календарь, также выводим часы, потом при отправке формы берем эти данные и передаем на сервер...но вот проблема, не могу понять как проверять занятость даты и времени из базы данных и, соответственно, отрисовывать это все сразу на стороне view, чтобы не было возможности записаться на занятое время (именно при загрузке страницы проверять и визуально отображать, а не в момент отправки формы проверять и говорить клиенту, что время занято).
Прошу помочь с идеями или решениями.
Смотрел, также пробовал bookform (проект от Яндекса), не то, не смогу корректировать под узкие нюансы, проверять поля формы на стороне сервера (под свой запрос) и выгружать статистику определенных данных из БД. Конечно попробую с гуглом ещё раз...но хотелось бы свое с возможностью нарастить функционал со временем.
Ну как? При загрузке страницы дёргать базу и отрисовывать на основе полученных данных, а как ещё-то? Чтобы снизить нагрузку, можно сохранять статичную копию, которую сносить при каждой записи, чтобы она обновилась.
А проверять при отправке формы надо всё равно. Нельзя доверять клиенту.
Не совсем понимаю как отрисовывать данные из БД, ведь в БД будут сохраняться только занятые значения. Поэтому в таких случаях наверное сначала отрисовывается просто календарь с данными, а потом полученные из БД данные запрещают повторную запись этого же времени.
именно при загрузке страницы проверять и визуально отображать, а не в момент отправки формы проверять и говорить клиенту, что время занято
Если у вас не один клиент, то проверять придется И при загрузке, И при записи.
Если выбранное клиентом время занято, пока он выбирал - обновляете информацию на клиенте и предлагаете выбрать другое время.
Вы вообще москвич, что ли? Никогда не приходилось записываться в поликлинику, когда запись начинается в 8 утра, а в 8:03 заходить на сайт уже бесполезно? Или ловить ж/д билеты на НГ с промежуточной станции?
Согласен, повторная проверка при отправке потребуется конечно, чтобы наложений не было при одновременной отправке данных. Про Москву не понял, записываться конечно приходилось, но календарь с данными будет отрисовываться в момент захода на сайт, поэтому прошедшее время просто уже не покажется для выбора.
NickOver, в современных провинциальных поликлиниках все доступное время записи к специалисту онлайн разбирается буквально за секунды. Пока пользователь получит страницу и выберет время, это время уже с немалой вероятностью оказывается занятым. На сайте РЖД в пиковые дни продаж та же фигня.