• Как задать проверку обязательных полей в форме?

    Spartak-2205
    @Spartak-2205
    Разработка и создание сайтов
    var email = $('#email').val();
    var phone = $('#phone').val();
    var text = $('#text').val();
    Вот эта дичь не нужна!

    В полях формы айдишники меняем на атрибут name. Для почты указываем type="email", для телефона type="tel" (на мобильных устройствах будет сразу открыта цифровая клавиатура для ввода телефона).
    <form id="sendEmail" action="#" method="POST">
    	<div class="modal-header">
    		<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
    	</div>
    	<div class="modal-body">
    		<input type="emal" class="form-control" name="email" placeholder="Email" required />
    		<input type="tel" class="form-control" name="phone" placeholder="Телефон" required />
    		<textarea class="form-control" name="text" cols="30" rows="10" placeholder="Сообщение" required></textarea>
    	</div>
    	<div class="modal-footer">
    		<button type="button" class="btn btn-default" data-dismiss="modal">Отмена</button>
    		<button type="submit" class="btn btn-primary">Отправить письмо</button>
    	</div>
    </form>


    Данные через ajax отправляем на сервер не по клику на кнопку, а по событию submit как это положено для формы.
    $(document).ready(function(){
    	$("form#sendEmail").submit(function(event) {
    		event.preventDefault();
    		$.ajax({
    			type: "POST", 
    			dataType: "html", 
    			url: "page.php", 
    			data: $(this).serializeArray(),
    			success: function(data) {
    				$(".modal-header").after(data);
    			}
    		});
    	});
    });


    P/S: в php обработчик также необходимо добавить проверку и валидацию данных.
    Ответ написан
    Комментировать
  • Как реализовать страницу для тестирования учеников?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Во-первых, непонятно в каком объеме у вас на данный момент реализовано текущее приложение на Spring.

    Сайт на подобие визитки.

    И вообще странно, что если это просто сайт-визитка, то зачем она писалась на Spring + VueJS. Там банально CMS WordPress хватит с лихвой. Ну в крайнем случае можно было взять рнр фреймворк (Yii2, Laravel) - обошлось бы дешевле для школы)

    Нужно прикрутить к нему сервис для тестирования учеников, с возможностью заходить в личный кабинет для ученика и учителя отдельно.


    1) Эндпоинты для ЛК учителя и ученика должны быть разными.
    2) Эндпоинты аутентификации учителя и ученика тоже можно сделать разными.
    3) Тестирование бывает разным. Нужно для начала разобраться с тем, какое тестирование вам нужно и как его можно реализовать.

    Например, есть тестирование при котором проверяется правильность выбранного ответа. Т.е. пользователь выбрал ответ "а" и соответственно, проверяем корректный ответ, хранимый в БД. Этот тест можно усложнить тем, что каждый раз при прохождении теста изменять местами варианты ответов, чтобы ученики не запоминали ответы по буквам.

    Другой вид тестирования, когда каждому ответу присваивается определенный балл. Далее высчитывается набранная сумма и выдается ему некий результат (часто встречается в психологических тестах).
    Иной вид тестирования, когда проверяется количество выбранных ответов варианта "А", "В" и т.д. Т.е. пользователь выбрал "А" - 5 раз, "В" - 2 раза. И если например, А < 5 и B >2, то отдаем один результат, иначе другой и т.д.

    4)
    Особенно как лучше сделать саму логику обработки ответов и последующую их проверку?

    Например, по мере прохождения теста формируем массив ответов и записываем их в LS, чтобы в случае чего не потерять данные. Затем по сабмиту "отправить на проверку" отправляем массив на сервер и перебирая ответы сравниваем их со значениями в БД. Если предусматривается возможность изменение варианта ответа для того или иного вопроса, то при изменении ответа, вносим правки в массив и сохраняем LS.

    Как реализовать страницу для тестирования учеников?

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

    Либо попробуйте поискать готовые решения, которые потом можете встроить в сайт. Правда, не самое лучшее решение.
    Например, https://www.classmarker.com/online-testing/how-to-...
    https://quiz.proprofs.com/how-do-i-embed-a-quiz-on...
    https://www.riddle.com/blog/embed-online-quizzes-site/
    Google

    В общем, все зависит от ваших навыков программирования, от бюджета, от сроков и т.д.
    Самое быстрое решение возможно, использование CMS с готовыми плагинами.
    Например, WordPress + плагины
    https://ru.wordpress.org/plugins/quiz-master-next/
    https://ru.wordpress.org/plugins/wp-quiz/
    https://www.wpbeginner.com/showcase/best-quiz-plug...
    https://ru.wordpress.org/plugins/hd-quiz/
    https://ru.wordpress.org/plugins/quiz-maker/
    Google

    Для более объективного ответа нужно больше данных.
    Ответ написан
    2 комментария
  • Как реализовать страницу для тестирования учеников?

    @cicatrix
    было бы большой ошибкой думать
    Уж больно богатая тема для фантазий.
    А что именно вызывает затруднения? Вроде бы проектирование вполне прямолинейное -
    таблица вопросов, таблица ответов, таблица вариантов теста. Назначение варианта студенту, из ЛК запрос на тест с вопросами, обратный запрос пересылает ответы. На стороне сервера сверяется правильно/неправильно.
    Ответ написан
    1 комментарий
  • Как еще отлаживать сайт на Android?

    @acwartz
    Тут должна быть ваша реклама.
    Вариант А.
    Зайдите в обычный браузер, включите Developer Tools (F12), нажмите пимпочку:
    5f71f0ac294d0277865863.png

    настройте разрешение и т.д. и играйтесь себе с работой веб-браузера в режиме смартфона.

    Вариант Б.
    Запустите виртуалку андроида (AVD) с идентичными реальному устройству параметрами и играйтесь с сайтами.

    Вариант С.
    Установите AirDroid на смартфон, установить на ПК. Подключите к смартфону и играйтесь с браузером.

    Отладка по USB не подходит - у телефона на котором нужно выполнить отладку нет USB.

    Что? Со времен появления кирпичей, USB-портом принято считать порт зарядки, т.к. для чего-то другого место было вообще крайне редко когда. Не думаю что ваш аппарат на андроиде из тех времен.
    Ответ написан
    7 комментариев