Как назначить действие на флажок в игре! для Java

0

У меня есть такая кнопка на моей странице

 #{if  someCondition}
            <a href="@{MyPage.index(true)}" class="btn">All requests</a>
        #{/if}
        #{else}
            <a href="@{MyPage.index(false)}" class="btn">Filtered requests</a>
        #{/else}

Возможно ли сделать это как флажок без какой-либо кнопки? Действие должно быть выполнено путем проверки флажка. Другими словами. Если флажок установлен, я хочу выполнить @{MyPage.index(true)} и если uchecked @{MyPage.index(false)}.

я пробовал

 <input type = "checkbox" onchange = "@{MyPage.index(true)}" value = "withMe" />

но это не сработает. Какие-либо предложения?

Теги:
playframework
checkbox

1 ответ

1
Лучший ответ

Механизм шаблонов на стороне сервера запускается при рендеринге вашей страницы. После того, как сервер вернет страницу обратно пользователю (на стороне клиента), вы больше не можете вызывать механизм шаблонов. onchange - это триггер JavaScript, вы не можете смешивать его с вашими командами шаблонов.

Вот как это работает:

Client      Server
------      ------
  1
  2   ----->  3
              4
              5
  7   <-----  6
  8
  1. пользователь переходит к URL-адресу вашего сайта
  2. браузер отправляет HTTP-запрос на сервер
  3. сервер получает запрос и сопоставляет его по маршрутам с контроллером
  4. контроллер делает свои трюки и вызывает вид
  5. представление визуализируется с использованием механизма шаблона и страницы, содержащей только HTML, CSS (это, как правило, отсутствует на странице, отображаемой на сервере и используемой из отдельного статического файла), и JavaScript создан
  6. сервер отправляет выше страницы в ответе HTTP обратно в браузер
  7. браузер получает ответ
  8. браузер загружает страницу

На стороне сервера вы можете использовать Java, механизм шаблонов, данные опроса из БД и т.д. На стороне клиента вы можете использовать HTML, CSS и JavaScript.

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

Если вам нужно указать какой-то дополнительный контент на странице при нажатии на конкретный флажок, у вас есть несколько вариантов:

  1. Сделайте запрос HTTP на сервер синхронно и снова загрузите страницу с большим количеством контента.
  2. Сделайте запрос HTTP на сервер асинхронно с AJAX и просто используйте JavaScript для добавления большего количества контента на страницу.
  3. Загружайте все данные на странице при первом вызове, но только сначала показывайте соответствующие биты, когда загружается страница. При щелчке по галочке используйте JavaScript, чтобы показывать новый контент с остальными данными в нем.

Я бы рекомендовал 2 или 3, так как 1 довольно старомодный и раздражающий для пользователя.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню