2013-10-11 4 views
0

Я знаю, что такие вопросы уже заданы, но я полностью новичок с 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> 

Извините, если это кажется немного сложным или тяжелым, но я просил, чтобы сделать это, и я понятия не имею.

ответ

0

когда вы делаете

success: function(html) { 
    ("#linea_equipo").val(html); 
} 

вы возвращаете значение в JSP, так что просто убедитесь, что все элементы, которые вы хотите заполняли иметь идентификатор как linea_equipo

0

В части успеха вашего кода вы можете написать логику для заполнения данных в вашей форме.

success: function(response) 
{ 

$("#ID").val("value");//find these value from your response 
// if your response is JSON you can replace value like response.key  
} 

see what json is

Для выбора выпадающий на JQuery использовать

$('#dropdownid').val('selectedvalue'); 

// ======== код для возврата ответа в JSON в Java Servlet

response.setContentType("application/json"); 
response.getWriter().write(jsonobject.toString()); 
+0

, и если это не json, как я могу вернуть все 4 значения? как массив? – bateras

+0

Посмотрите, что вы ожидаете в ответ от сервера. , использовать dataType в синтаксисе метода ajax, чтобы указать, в каком формате вы ожидаете. , в успехе вы можете предупредить ответ –

+0

Я думаю, что проще использовать JSON в качестве ответа. Я добавил код, чтобы вернуть ответ как JSON. –

Смежные вопросы