Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 24 25 26 27 28 [29] 30 31 32 33 .. 38   вперед  Ctrl
 Re: Вопросы для тестов по java  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2956
asv79
Дмитрий Мух,
вот же у меня написао в комоне
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

вот это перенеси перед </head>
а это выкини: <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
28 сен 19, 01:38    [21981480]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2806
Дмитрий Мух
asv79
Дмитрий Мух,
вот же у меня написао в комоне
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

вот это перенеси перед </head>
а это выкини: <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"

заработало, но теперь вот такая дичь при нажатии на кнопку получается старая страница накладывается на новую

К сообщению приложен файл. Размер - 37Kb
28 сен 19, 01:51    [21981484]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2956
asv79,

так как написано у тебя, так и работает :)

если ты хочешь чисто вопрос следующий отобразить, то его только и нужно возвращать с сервера, а не всю страницу
то есть (судя по твоему коду) только это:
<div>
    <input type="text" readonly class="form-control-plaintext mb-4" value="${question.text}">
</div>
<#if answer??>
<#list answer as a>
<div class="form-check mb-2">
    <input class="form-check-input" type="radio" name="answer" id="${a.id}" value="${a.id}" >
    <label class="form-check-label" for="${a.id}">${a.answerText}</label>
</div>
</#list>
</#if>
<#if answerCheck??>
<#list answerCheck as a>
<div class="form-check mb-2">
    <input class="form-check-input" type="checkbox" name="answer" id="${a.id}" value="${a.id}" >
    <label class="form-check-label" for="${a.id}">
        ${a.answerText}
    </label>
</div>
</#list>
</#if>
<input class="btn btn-outline-primary " type="submit" value="Enter">
28 сен 19, 01:57    [21981487]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2956
asv79,

ну и таймер у тебя расчитан на дураков, его же отключить не фиг делать :)
28 сен 19, 02:09    [21981488]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9805
asv79
нет)я к этим ребятам отношусь с уважением,но они ослы)
Да не вопрос.
Но есть ньюанс - вот приглашают вас JetBrains на собеседование (переезд оплатили и офис в Твери открывают - не суть).
Услышит от вас хоть кто-то из сотрудников JB "Вы - ослы"?
28 сен 19, 08:26    [21981516]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3742
Ошибка то какая?
28 сен 19, 08:33    [21981519]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9805
asv79
а что если изза того,что люди видят что сапожник без сапог- они думают что он какой то Осел и проходят мимо,тоесть сапожник начинает терять деньги)
Он ваши деньги теряет? Нет? Ну так и проходите мимо.
Ваше, безусловно ценное мнение, можете засунуть в вашу собственную задницу.
28 сен 19, 08:33    [21981520]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3742
Basil A. Sidorov,
Он не дипломат. Понятно что кидаться фразами Ослы не совсем прилично.
Не прилично кидать сюда ссылки с регистрацией.
Не прилично делать сайты с регистрацией.
Не принято значки соц сетей разделять на две вкладки.
Об этом говорилось.
28 сен 19, 08:38    [21981522]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9805
PetroNotC Sharp
Он не дипломат.
А при чём тут дипломатия, если, по итогу, человек просто считает деньги в чужих карманах?
Само по себе, по нынешним временам, даже это не слишком предосудительно.
Но, мопвашуять, только владелец кармана имеет права решать - достаточно у него денег или он готов выслушать советы посторонних.
28 сен 19, 08:47    [21981526]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3742
Basil A. Sidorov
по итогу
на деньги все свел чел из шарпа. Он менеджер. Не программист.
А мы обсуждали факты плохого гуи.
И ссылку провокацию подкинул тоже менеджер(не программист)
28 сен 19, 08:56    [21981530]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3742
Дмитрий Мух
я только одного лично знаю: Андрей Акиньшин
вот это тоже неприлично.
"не упоминай всуе...."
Удачи ТС.
28 сен 19, 09:14    [21981541]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2806
Дмитрий Мух
asv79,

ну и таймер у тебя расчитан на дураков, его же отключить не фиг делать :)

таймер говно согласен,он при обновлении страницы вырубится
28 сен 19, 09:28    [21981545]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2806
Дмитрий Мух
asv79,

так как написано у тебя, так и работает :)

если ты хочешь чисто вопрос следующий отобразить, то его только и нужно возвращать с сервера, а не всю страницу
то есть (судя по твоему коду) только это:


понял,а как сделать чтобы только этот кусок возвращало?
что то в контроллере нужно изменить?
28 сен 19, 09:29    [21981546]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3742
asv79
понял,а как сделать чтобы только этот кусок возвращало?
что то в контроллере нужно изменить?
на клиенте ajax, на сервере вьюшка на этот кусок и ее вызвать
28 сен 19, 09:40    [21981550]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3742
Ты топил за то что обновление страницы счас мелочи.
Передумал?))))
28 сен 19, 09:41    [21981552]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17101
ГЫГЫГЫГЫГЫ
28 сен 19, 10:17    [21981561]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2806
PetroNotC Sharp
Ты топил за то что обновление страницы счас мелочи.
Передумал?))))

да видишь засада получается-так бы все ок было,но таймер поганый обновляется))
таймер чисто для визуализации-с джава кодом не связан
так что как только пользователь отвечает на вопрос то таймер начинает идти заново,что не есть гуд
тут либо делать так чтобы вопрос только обновлялся,а не вся страница целиком,либо сделать таймер таким ,чтобы при обновлении его показания не скидывались

в любом случае интересно в учебных целях оба варианта

вот мой контролер куда этот скрипт отправляет пост
    @PostMapping("/saveresult")
    public String easyTest3(
            @RequestParam(name = "answer",required = false)List<Answer>answerList,
            Model model,
            @ModelAttribute("question")Question question,
            @ModelAttribute("list")List<Question>questionList
    ){

        questionList.remove(question);
        Question q=questionList.get(random.nextInt(questionList.size()));
        model.addAttribute("question",q);
        return "redirect:/showquestion";

    }

прилетают ответы ,я с ними кое что делаю,удаляю вопрос из листа,который висит в сесссии и беру оттуда новый вопрос и кладу его в сессию,
далее кидаю на вьюшку вот сюда
  @GetMapping ("/showquestion")
    public String easyTest1(Model model,@ModelAttribute("question") Question q){
        int sum=0;
        List<Answer>listAnswer=q.getAnswerList();
        for (Answer answer : listAnswer) {
            if (answer.isMatch()) {
                sum++;
            }
        }
        if(sum<=1){
             model.addAttribute("answer",listAnswer);}
        else {model.addAttribute("answerCheck",listAnswer);}
        return "et";
    }

где отображаю ответы на вопрос из сессии на странице "et.ftl"

вот сама страница
<#import "parts/common.ftl" as c>
<@c.page>

<form action="/saveresult" method="post">
    <div>
        <input type="text" readonly class="form-control-plaintext mb-4" value="${question.text}">
    </div>
    <#if answer??>
    <#list answer as a>
    <div class="form-check mb-2">
        <input class="form-check-input" type="radio" name="answer" id="${a.id}" value="${a.id}" >
        <label class="form-check-label" for="${a.id}">
            ${a.answerText}
        </label>
    </div>
</#list>
</#if>
<#if answerCheck??>
<#list answerCheck as a>
<div class="form-check mb-2">
    <input class="form-check-input" type="checkbox" name="answer" id="${a.id}" value="${a.id}" >
    <label class="form-check-label" for="${a.id}">
        ${a.answerText}
    </label>
</div>
</#list>
</#if>

<input class="btn btn-outline-primary " type="submit" value="Enter">
</form>
<body onLoad="Pusk()">
<h1 align="right"> <span class="badge badge-secondary"><div class="st" id="tm">00:30:00</div></span></h1>

<script>
     var s=00 //секунды
     var m=30 //минуты
     var h=00 //часы
     var r=0; var tt=0;
    function T()
    {s-=1;
     if(s<0) s=59,m-=1;
     if(m<0) m=59,h-=1;
     if(h<0) h=23
     if(s+m+h==0)T3()
     s = s+"";
     m = m+"";
     h = h+"";
     if (s.length<2) s = "0"+s;
     if (m.length<2) m = "0"+m;
     if (h.length<2) h = "0"+h;
     tm.innerHTML=h+":"+m+":"+s }
    function Pusk()
        {if(!r){r=1;T2()}}
    function T2()
        {tt=setInterval("T()",1000)
        tm.className="sp" }

    function T3()
        {location.href = "/";}
     </script>
<script>
$('form').submit(function(e) {
    var $form = $(this);

    $.ajax({
      data: $form.serialize(),
      type: $form.attr('method'),
      url: $form.attr('action')
    }).done(function(data, status, request) {
      $form.html(data);
    }).fail(function(request, status, error) {
      alert(status + ': ' + error);
    });

    e.preventDefault();
  });
</script>
</@c.page>

тоесть получается в контроллере ,который отвечает за вью я должен возвращать что то другое а не "et"?
28 сен 19, 10:18    [21981562]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2956
asv79
тут либо делать так чтобы вопрос только обновлялся,а не вся страница целиком,либо сделать таймер таким ,чтобы при обновлении его показания не скидывались

тут надо сначала головой подумать, а потом уже делать :)

тебе, как бекенд разработчику, следует мыслить категориями предметной области: сущностями, процессами, - а не таймерами и обновлениями страниц :)

у тебя что? тестирование..
это и сущность, в начале состоящая из того, кто, когда начал, какие вопросы..
и процесс, по окончанию которого мы имеем законченное состояние этой самой сущности..

как я уже писал выше, в момент начала тестирования следует сохранить информацию о нём хоть в сессию, хоть в базу, хоть в отдельный микросервис передать..
и, внезапно, при любой перезагрузке страницы ты знаешь то, сколько времени оно уже идёт, а, следовательно, и сколько осталось до его окончания..
и, соответсвенно, можешь и на сервере проверить то, что лимит не превышен (как бы тебе его на клиенте не подхачили), и на клиенте отобразить пресловутый таймер :)
28 сен 19, 11:03    [21981567]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2956
asv79
тоесть получается в контроллере ,который отвечает за вью я должен возвращать что то другое а не "et"?

бинго! если хочешь именно ajax-ом подгружать вопросы
но имхо рано.. на бекенде у тебя пока фигня полная реализована, отсюда и все пляски с бубном :)
28 сен 19, 11:07    [21981569]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3742
asv79
да видишь засада получается-так бы все ок было,но таймер поганый обновляется))
таймер чисто для визуализации-с джава кодом не связан
таймер для чего? Время для всех ответов?
Сделай на бэке.
28 сен 19, 12:34    [21981602]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17101
PetroNotC Sharp
таймер для чего? Время для всех ответов?
Сделай на бэке.
ему надо динамически отображать время
28 сен 19, 12:47    [21981612]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17101
            var t0 = performance.now();
            var formatter = new Intl.DateTimeFormat("ru", {
                minute: "numeric",
                second: "numeric"
            });
            setInterval(xx, 1000);
            function xx() {
                document.getElementById('tt').innerHTML = formatter.format(performance.now() - t0);
            }
28 сен 19, 12:51    [21981615]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 3742
вадя
ему надо динамически отображать время
ааааа.
Ну это его проблемы.
Это уже отдельный топик.
Тут вы сами)
28 сен 19, 13:02    [21981618]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2956
вадя
PetroNotC Sharp
таймер для чего? Время для всех ответов?
Сделай на бэке.
ему надо динамически отображать время

дак и пусть отображает как отображает...
входные значения надо просто с сервера брать, а не хардкодить:
     var s=00 //секунды
     var m=30 //минуты
     var h=00 //часы

плюс на сервере и проверять, что время не вышло
28 сен 19, 13:13    [21981620]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы для тестов по java  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2956
asv79
@GetMapping("/showquestion")
public String easyTest1(Model model, @ModelAttribute("question") Question q) {
    int sum=0;
    List<Answer>listAnswer=q.getAnswerList();
    for (Answer answer : listAnswer) {
        if (answer.isMatch()) {
            sum++;
        }
    }
    if(sum<=1){
        model.addAttribute("answer",listAnswer);
    } else {
        model.addAttribute("answerCheck",listAnswer);
    }
    return "et";
}
Заведи ты атрибут у вопроса (Question), определяющий его тип: single choice, или multiple choice.
И вычисляй в момент сохранения вопроса, а не каждый раз в момент показа.

Будет проще и меньше кода:
@GetMapping("/showquestion")
public String easyTest1(Model model, @ModelAttribute("question") Question q) {
    model.addAttribute("answers", q.getAnswerList());
    model.addAttribute("inputType", q.hasMultipleAnswers ? "checkbox" : "radio");

    return "et";
}

<form action="/saveresult" method="post">
    <div>
        <input type="text" readonly class="form-control-plaintext mb-4" value="${question.text}">
    </div>
    <#list answers as a>
    <div class="form-check mb-2">
        <input class="form-check-input" type="${inputType}" name="answer" id="${a.id}" value="${a.id}" >
        <label class="form-check-label" for="${a.id}">${a.answerText}</label>
    </div>
    </#list>
    <input class="btn btn-outline-primary " type="submit" value="Enter">
</form>
28 сен 19, 16:47    [21981693]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 24 25 26 27 28 [29] 30 31 32 33 .. 38   вперед  Ctrl
Все форумы / Java Ответить