Я знаю, что такие вопросы уже заданы, но я полностью новичок с Ajax и JavaScript. У меня есть поле (codigo_caso
), который я должен быть пусковыми для заполнения формыЗаполнение формы в JSP с помощью ajax
<input id="codigo_caso" autofocus="autofocus" type="text" name="codigo_caso" value=""/>
Я должен получить 4 переменных после потери фокуса на этом поле (или 1 переменные, если другая 4 пустые) И большой проблемой после извлечения этих 4 переменных является то, как с ними хорошо работать.
JSP Веб-страница -> Script Это фрагмент я скопирована из интернета и модифицирована получить одно поле
$(document).ready(function() {
$("#codigo_caso").blur(function() {
var cod = $(this).val();
var dataString1 = {"codigo":cod};
$.ajax({
type: "GET",
url: "otros/codigoCasoDependienteNuevaTarea.jsp",
datatype: "json",
contentType: "application/json; charset=utf-8",
data: dataString1,
cache: false,
success: function(response) {
$(".linea_equipo").response("linea_equipo");
$("#selectArea").filter(function() {
return $(this).response("id_area") === response("area");
}).prop('selected', true);
$(".listaCentros").response("nombre_centro");
$("#listaRolNuevaTarea").filter(function() {
return $(this).response("id_rol") === response("rol");
}).prop('selected', true);
}
});
});
});
Это мой файл JSP запуска SQL [где мне нужно для восстановления нескольких переменных]. мне нужно знать, как вернуть эти 3 поля для моей предыдущей JSP
JSP FILE -> OTROS/codigoCasoDependienteNuevaTarea.jsp
String linea = "", centro = "", error = "No existe el caso indicado";
int area, rol;
Connection conex = (Connection) session.getAttribute("conexion");
Statement st = conex.createStatement();
String sql = "";
String cod = request.getParameter("codigo").toString();
if (cod != null && !cod.isEmpty() && !cod.equals("0")) {
sql = "SELECT t1.linea_equipo,t1.id_rol, t2.id_area,t2.nombre_centro "
+ " FROM gen_casos_prisma t1 LEFT OUTER JOIN gen_centros t2 ON "
+ " t1.id_centro = t2.id_centro "
+ " WHERE "
+ " t1.CODIGO_CASO = " + cod;
ResultSet rs = st.executeQuery(sql);
rs.beforeFirst();
if (rs.next()) {
linea = rs.getString("linea_equipo");
area = rs.getInt("id_area");
centro = rs.getString("nombre_centro");
rol = rs.getInt("id_rol");
JSONObject j = new JSONObject();
j.put("linea_equipo", linea);
j.put("id_area", area+"");
j.put("nombre_centro", centro);
j.put("id_rol", rol+"");
} else {
/* return variable error */
}
response.setContentType("application/json");
}
Следующим шагом после того, зная, как получить эти поля является знать, что с ними делать. Я знаю, как я могу разместить linea_equipo
в текстовом поле [с кодом, который я разместил в скрипте над кодом JAVA], но мне также нужно установить «выбранный» один параметр в каждом из этих списков (два являются раскрывающимися списками и другое - информатор) с учетом того, что они уже заполнены; просто нужно поместить выбранный атрибут в значение, соответствующее полю, которое форма должна получить из этой вещи ajax-jsp. (selectArea - id_area
, listaCentrosDeArea - nombre_centro
, listaRolNuevaTarea - id_rol
)
<select id="selectArea" >
<%out.print(f.getSelectAreas(conex));%>
</select>
<datalist id="listaCentrosDeArea" id="datalist1">
<% //out.print(f.selectCentrosNOUser(conex, updateTarea));%>
</datalist>
<select id="listaRolNuevaTarea" name="rol">
<% out.print(f.selectRolesNoUser(conex));%>
</select>
Извините, если это кажется немного сложным или тяжелым, но я просил, чтобы сделать это, и я понятия не имею.
, и если это не json, как я могу вернуть все 4 значения? как массив? – bateras
Посмотрите, что вы ожидаете в ответ от сервера. , использовать dataType в синтаксисе метода ajax, чтобы указать, в каком формате вы ожидаете. , в успехе вы можете предупредить ответ –
Я думаю, что проще использовать JSON в качестве ответа. Я добавил код, чтобы вернуть ответ как JSON. –