JSP 中的链接下拉列表



我正在研究一个货物跟踪系统。在这种情况下,对于地址信息,我需要 3 个下拉列表,第一个是城市,将从数据库中检索城市名称。直到这里没有问题。但是第二个下拉城镇需要在第一个下拉列表中选择的城市中填写城镇名称。以同样的方式,区域下拉列表将链接到城镇下拉列表。我为此编写了一些代码,但此代码重新加载表单,因此所有下拉列表都变为默认值。这是我的代码:

<%
    DBOperations db = new DBOperations();
    Connection conn = null;
    conn = db.connect();
    ResultSet rs = db
            .runQuery(conn, "Select distinct city from Adress");
%>
<form method="post" action="addBranch.jsp">
    <table border="1" width="30%" cellpadding="3">
        <thead>
            <tr>
                <th colspan="2">Enter the Parameters</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>CITY :</td>
                <td><select name="city" onChange="a();">
                        <%
                            while (rs.next()) {
                        %>
                        <option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option>
                        <%
                            }
                        %>
                </select></td>
            </tr>
            <%
                if (request.getParameter("city") != null)
                    rs = db.runQuery(conn,
                            "Select distinct town from adress where city='"
                                    + request.getParameter("city") + "'");
            %>
            <tr>
                <td>TOWN</td>
                <td><select name="town" onChange="this.form.submit();">
                        <%
                            while (rs.next()) {
                        %>
                        <option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option>
                        <%
                            }
                        %>
                </select>
            <tr>

在这种情况下,我该怎么办?我该如何实现这一点?

从你的代码中不清楚 JavaScript 中的 a(); 方法在做什么。此外,在您的 TOWN 列表下拉列表中,当 onChange 发生时,您只需提交指向 addBranch.jsp 页面的表单,我想它会再次重新加载整个内容。

我建议你看看实现这一点的替代方法。主要原因是:1)你在HTML中混合了太多的脚本代码。2)您还可以优化服务器端实现,以防对城镇等进行类似的查找。

您应该在这里查看使用 Ajax 并实现 SErver 端 API 调用来检索城镇列表、基于城镇的地区列表等。Ajax 调用应该在代码中发生 onChange 时进行。

编写脚本不是一个好主意 jsp 仅用于表示逻辑。这是你应该做的,1)使用 jquery/javascript 监听下拉更改。2)在更改下拉列表时,对servlet进行ajax调用并获取下一个下拉列表的数据并填充它。

参考这些帖子,尝试一下,如果你坚持任何特别的事情,我会回来。

如何在JSP中制作级联下拉框?

最新更新