0

我知道已经有人问过这类问题,但我完全是 Ajax 和 JavaScript 的新手。我有一个字段 ( codigo_caso),我需要将其作为表单填写的启动器

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

在失去对该字段的关注后,我必须检索 4 个变量(或者如果其他 4 个变量为空,则为 1 个变量)检索这 4 个变量后的大问题是如何与它们一起工作。

JSP Web Page --> Script 这是我从互联网上复制并修改为接收 ONE 字段的片段

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

对不起,如果它看起来有点棘手或沉重,但我被要求这样做,我不知道。

4

2 回答 2

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    
}

看看json是什么

使用 jQuery 选择下拉菜单

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

//======== 代码在java servlet中以json形式返回响应

response.setContentType("application/json");
response.getWriter().write(jsonobject.toString());
于 2013-10-11T09:08:47.037 回答
0

当你在做

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

您正在将值返回给 JSP,因此只需确保您要填写的所有元素都具有类似的 idlinea_equipo

于 2013-10-11T08:55:04.240 回答