我在处理两个链接下拉列表时遇到困难,下拉列表1将从数据库中获取值,并根据用户的选择,它将在下拉列表2中获取相关记录。
我尝试在我的jsp中使用该代码执行此操作,但它不起作用,并且许多人建议使用javascript。事实上,我不太了解更多的JS,所以请你帮帮我
<select size="1" name="shop_category"><option value="NONE">
<%
try
{
ResultSet rs=null;
Statement st1=null;
String query = "select Category_name, category_id from shop_category_lkup";
st1 = conn1.createStatement();
rs = st1.executeQuery(query);
while(rs.next())
{
String sz_Selected="";
if (rs.getString("category_id").equals(shop_category))
{
sz_Selected = "selected";
}
%>
<option value="<%=rs.getString("category_id")%>" <%=sz_Selected%>>
<%=rs.getString("category_name")%></option>
<%
}
}
catch (Exception e) {
e.printStackTrace();
}
%>
</select>
<select size="1" name="rent_category"><option value="NONE">
<%
try
{
ResultSet rs=null;
Statement st1=null;
String query = "select r.Category_name, r.category_id from rent_category_lkup r, shop_categpry_lkup s where r.category_id=s.category_id";
st1 = conn1.createStatement();
rs = st1.executeQuery(query);
while(rs.next())
{
String sz_Selected="";
if (rs.getString("category_id").equals(rent_category))
{
sz_Selected = "selected";
}
%>
<option value="<%=rs.getString("category_id")%>" <%=sz_Selected%>>
<%=rs.getString("category_name")%></option>
<%
}
}
catch (Exception e) {
e.printStackTrace();
}
%>
</select>
答案 0 :(得分:4)
你假设javalet中存在的Java代码在客户端执行,这是一个根本性的错误!
看看lifecycle of a JSP。在此之后,您将处于更好的位置,以了解您的代码无法正常工作的原因 此后,您应该尝试使用AJAX查看一些Cascading Dropdown examples。
如果所有这些都无济于事 - 再次发布,这将更容易引导您完成。
答案 1 :(得分:3)
我没有心情发表一个延伸的答案,因为@anirvan已经用两个词完全总结了一些我无法理解的词:你正在犯一个基本错误。
关键点:Java / JSP在Web服务器上运行,生成一堆HTML / CSS / JS并通过网络从websserver发送到webbrowser。 webbrowser(例如MSIE,Firefox等)单独检索和理解HTML / CSS / JS并开始显示/应用/运行它。如果Java / JSP完成了它的任务,那么在做右键单击&gt;时,你不应该看到任何行。 webbrowser中的查看源。让webbrowser(JavaScript)中的代码和webserver(Java / JSP)中的代码相互通信的唯一方法是让JavaScript发送HTTP请求并对其进行Java / JSP响应。
在JavaScript中发送HTTP请求可以通过多种方式完成:
document.getElementById('formId').submit()
。window.location = 'http://www.google.com';
。new XMLHttpRequest()
等等。这里有一堆“必读”链接,用于了解彼此之间的相互关系以及应该应该如何使用
嗯,这个答案毕竟比我的意思更加延伸......无论如何,希望它有所帮助!