Boa tarde!
Preciso de uma ajuda dos integrantes do Fórum, é o seguinte. Estou desenvolvendo uma aplicação cpm Java e SpringBoot e preciso implementar uma view onde terá um select que trará a informação do banco Mysql, até ae tudo bem, o problema e que preciso que ao selecionar o primeiro select ele faça uma busca no banco e e libere o segundo select conforme o id do primerio e assim sucessivamente, ou seja , uma busca por relacionamento.
Tudo isso com o thymeleaf.
Fico no guardo.
@darlan_machado A dúvida é que não sei como implementar isso com o thymeleaf, pesquisei aqui e não vi nada que pudesse ajudar, se vc tiver alguma ideia fico grato.
Ok, vamos lá.
Você vai precisar implementar uma chada a uma função javascript que dispare uma requisição ajax e, assim, permita popular a outra combo de forma dinâmica.
Isto é independente de thymeleaf. Limita bastante o resultado de suas pesquisas colocando thymeleaf no critério de busca.
Segue o que @darlan_machado te sugeriu fazer:
HTML:
<select onchange="changeSelect1(this)">
...
</select>
JS:
function changeSelect1(select1) {
var id = select1.options[select1.selectedIndex].value;
//faz a requisicao ajax pro seu back-end e preenche o select2 a partir do item selecionado no select1
//com jquery fica mais fácil
}
@darlan_machado, @javaflex , Eu nunca trabalhei com ajax vou ver se consigo alguma coisa com o JQuery, mas como ficaria essa requisição ao backend, pois eu utilizo o thymeleaf para fazer a comunicação back e front e vc disse que o thymeleaf limita o resultado ?
O que você usa no back-end, servlet puro ou com spring mvc?
Como o que voce necessita nao depende do thymeleaf, sua busca no google vem menos resultados se colocar a palavra thymeleaf.
Em relacao a back-end x ajax voce deve pesquisar por exemplo: spring mvc ajax
@javaflex, Entendi, achei que vc tinha dito sobre o resultado do backend, eu estou utilizando o springboot no back.
Eu migraria 100% para algum SPA (angular, por exemplo) e abandonaria o thymeleaf. Acho ele desajeitado e estranho. Muito mais simples usar só jquery e bootstrap no front ou o angular mesmo.
No próprio site da Spring tem exemplos com Spring Boot:
Mas nao se limite a eles, pesquise no google que tem uma infinidade de materiais. O ideal seria parar um pouco para estudar java script, ajax, jquery e HTTP.
É verdade @darlan_machado, so que já tenho muita coisa pronta e preciso apresentar este material, a intenção será posteriormente fazer isso, implementar uma api rest Json e consumir com angular, mas para agora não tenho como fazer porque a linha de aprendizagem do angular é bem complexa.
@javaflex Eu tenho sérios problemas com o javascript é uma relação que ainda não deu certo, mas vou ter que insitir se quero ter um bom frontend, achei alguns exemplos prontos em jquery e javascript vou ver se consigo adaptar à minha necessidade, mas até o momento obrigado pela ajuda de todos.
Não tem saída, é a linguagem usada para o front-end que você está atendendo. Existem facilitadores como a biblioteca jquery, que eu prefiro por ser leve e facilitar as coisas sem me tirar a liberdade de programar. Já os mais jovens principalmente, preferem algo mais declarativo do que imperativo, como por exemplo Reactjs, Angular, Vue, etc.
Só se você tem problemas com javascript (que é o caso, conforme sua resposta).