JSP中的链接下拉列表

时间:2013-12-30 16:16:07

标签: jsp linked-list html-select

我正在研究货物跟踪系统。在这种情况下,我需要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>

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

2 个答案:

答案 0 :(得分:0)

从您的代码中不清楚方法a();在JavaScript中正在做。另外在你的TOWN列表下拉列表中,当onChange发生时,你只是提交返回addBranch.jsp页面的表单,我想再次重新加载整个页面。

我建议您查看实现此方法的其他方法。主要原因是: 1)您在HTML中混合了太多的Script代码。 2)如果对城镇等进行类似的查找,您还可以优化服务器端实施。

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

答案 1 :(得分:0)

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

参考这些帖子,尝试一下,如果特别是你遇到任何问题,我会回来。

How to make a cascading drop down box in JSP?