【发布时间】:2014-05-02 13:20:52
【问题描述】:
我在 JSP 中定义了两个下拉菜单。第一个下拉列表从数据库中获取其值。在此下拉列表中选择一个值时,应根据第一个下拉列表的选定值从数据库中获取第二个下拉列表的相应值。我使用 Javascript 和 jquery 来获取第一个下拉列表的值。但我无法弄清楚如何在 JSP 中引用这个值来填充第二个 JSP。
这是我的两个下拉菜单的 JSP 代码:
第一个下拉菜单:
<select name="dd1" id="dd1" style="width: 200px">
<option value="0">Choose New Salary</option>
<%
String Query1="select distinct Salary from TABLE1 where StartYear < 2005 order by Salary";
Stmt1 = conn.createStatement();
ResultSet List1=Stmt1.executeQuery(Query1);
while (List1.next())
{
int val1=List1.getInt("SALARY");
%>
<option value ="<%=val1%>"><%=val1%></option>
<%
}
%>
第二个下拉列表(我需要将 GETDD1DATA 替换为第一个下拉列表的值):
<select id="dd2" style="width: 200px">
<option value="0">Choose New Position</option>
<%
String Query2="select distinct POSITION from TABLE1 where Salary=" + GETDD1DATA + " order by POSITION";
Stmt2 = conn.createStatement();
ResultSet List2=Stmt2.executeQuery(Query2);
while (List2.next())
{
int val2=List2.getInt("POSITION");
%>
<option value ="<%=val2%>"><%=val2%></option>
<%
}
%>
这是获取第一个下拉列表数据的 Javascript/Jquery 代码(我可以看到第一个下拉列表的值正确存储在变量 selectedValue1 中):
<script type="text/javascript">
$(document).ready(function() {
$("#dd1").change(function(){
var selectedValue1 = $(this).val();
//console.log(selectedValue1);
});
});
</script>
我需要将 selectedValue1 的值从 Javascript 传递到 JSP 并在变量 GETDD1DATA 中引用它。我探索了会话变量和隐藏元素来存储 dropdown1 值。但是这些不起作用,因为当会话变量尚未在 Javascript 中声明时,Java 脚本只会在页面加载时执行一次。我还认为重新加载整个页面不是一个选项,因为下拉菜单将重置为其默认值。请帮助我解决我的问题。
【问题讨论】:
-
点击一个选项来加载第二个值的选择你在哪里有这些值?
-
我将使用从查询中的第一个下拉列表中选择的值来获取第二个下拉列表的值。但我无法弄清楚如何在运行时引用 JSP 中的第一个下拉列表的值。
标签: java javascript jquery ajax jsp