Potrzebuję zrobić coś takiego: mam dwie listy <select>. Pierwsza zawiera nazwy województw i po wybraniu jednego z nich, w drugiej liście mają się pojawić miasta z danego województwa.
Niestety, udało mi się tylko wyświetlić tę pierwszą listę z województwami i drugą pustą.
Po wybraniu województwa, zawartość pierwszej listy znika a druga lista pozostaje pusta przez cały czas
Proszę o pomoc
<form th:method = "POST" th:action="@{/select_voivodeship}" th:object="${voivodeships}">
<label>Wybierz województwo:
<select class="form-control" onchange="this.form.submit()" th:field="${voivodeships}">
<option value=""> -- </option>
<option th:each="voivodeship : ${voivodeships}" th:value="${voivodeship.getId()}" th:text="${voivodeship.getName()}"></option>
</select>
</label>
</form>
<form th:method = "POST" th:action="@{/select_city}" th:object="${cities}">
<label>Wybierz miasto:
<select>
<option value=""> -- </option>
<option th:each="city : ${cities}" th:value="${city.getId()}" th:text="${city.getName()}" ></option>
</select>
</label>
</form>
@GetMapping("/taxoffice")
public String getVoivodeship(Model model) {
List<Voivodeship> voivodeships = voivodeshipService.findAll();
model.addAttribute("voivodeships", voivodeships);
return "taxoffice";
}
@PostMapping("/select_voivodeship")
public String selectVoivodeship(@ModelAttribute("voivodeships") @RequestBody Voivodeship voivodeship, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
System.out.println("There were errors");
bindingResult.getAllErrors().forEach(error -> {
System.out.println(error.getObjectName() + " " + error.getDefaultMessage());
});
return "taxoffice";
}
else {
List<City> cities = cityService.getAllCitiesByVoivodeship(voivodeship.getId());
return "/taxoffice";
}
}