Я пытаюсь создать динамическое поле выбора на форме, когда я выбираю элемент в первом поле выбора, ajax должен вызвать массив списков и поместить его во второе поле выбора.Это мой jsp файл
<!DOCTYPE html>
<html lang="en">
<head>
<title>SO question 4112686</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="ajax.js"></script>
</head>
<body>
<form method="get" action="GetUserServlet">
<select id="userSelect" name="user">
<option id="aUser" value="" disabled selected>USUARIO</option>
<option id="aUser" value="1">User 1</option>
<option id="aUser" value="2">User 2</option>
<option id="aUser" value="3">User 3</option>
</select>
<br>
<select id="items" name="items">
<option value='' disabled selected>ITEM</option>
</select>
<br>
<button type="submit" id="somebutton">press here</button>
</form>
</body>
</html>
, и это мой метод doGet для моего файла GetUserServlet сервлета
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ArrayList<String> list = new ArrayList<>();
list.add("item1");
list.add("item2");
list.add("item3");
String usuario = request.getParameter("user");
System.out.println(usuario);
if(usuario.equals("1")) {
list.clear();
list.add("item9");
list.add("item19");
}
String json = new Gson().toJson(list);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
Я использую условное выражение, чтобы проверить, является ли он первым пользователем, y просто показать наполе выбора, item9 и item19.
И это мой файл ajax.js
$(document).on("change", "#userSelect", function(responseJson) {
var user = $("#userSelect").val();
$.ajax({
url: 'GetUserServlet',
type: 'get',
data: {user:user},
dataType: 'json',
complete:function(){
$.get("GetUserServlet", function(responseJson) {
$("#items").empty();
$("<option value='' disabled selected>ITEM</option>").appendTo($("#items"))
$.each(responseJson, function(index, item) {
$("<option value='" + item + "'>").text(item).appendTo($("#items"));
});
});
},
});
});
У меня есть метод ajax для отправки параметра пользователя сервлету, а внутри у меня есть$ .get, чтобы получить массив из сервлета и поместить значения параметров в поле выбора.И когда я выбираю user1, это никогда не дает мне правильный массив.