2013-10-11 64 views
0

我知道這類問題已經被問到,但我完全是一個使用Ajax和JavaScript的新手。 我有一個字段(codigo_caso),我必須的形式填充用ajax在JSP中填充表格

<input id="codigo_caso" autofocus="autofocus" type="text" name="codigo_caso" value=""/>

我有該字段失去焦點後檢索4個變量的發射器(或如果1個變量的其它4是空的) 檢索這4個變量後的大問題是如何與他們合作。

JSP網頁 - >腳本 這是我從互聯網上覆制和修改,以獲得一個字段的片段

$(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文件 - > 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

的ID在成功的一部分的代碼中,您可以編寫邏輯來將數據填充到表單中。

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'); 

// ====== 代碼在Java Servlet的返回響應,JSON

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

如果它不是json,我該如何返回所有4個值?作爲一個數組? – bateras

+0

看看你對服務器的迴應如何。 。 在ajax方法語法中使用dataType來說明您期望的格式。 。 成功,您可以提醒響應 –

+0

我認爲使用JSON作爲響應更容易我添加了代碼以將響應作爲JSON返回。 –