下面是我的代码,
<select name = "department_select">
<script language = "javascript" type="text/javascript">
var dept_names = [];
var index=0,limit,it;
<%
String dept_list[] = dbManager.get_dept_list();
for(int i=0;i<dept_list.length;i++)
{
%>
dept_names[<%=i%>] = <%=dept_list[i]%>;
<%
}
%>
limit = dept_list.length;
for(index=0;index<limit;index++)
{
document.write("<option>"+dept_names[index]+ "</option>");
}
</script>
</select>
我正在尝试创建一个下拉列表,该下拉列表将访问数据库中的数据并将这些数据用作jsp页面中下拉列表的选项已有几天。
当执行我的jsp页面时,它显示下拉列表,但是没有选项,只是空白。
我认为代码第10行的分配不起作用。
我试图使用循环将Java数组的每个值分配给javascript数组。
为什么这不起作用?我正在使用oracle数据库系统。
最佳答案
您缺少JavaScript字符串周围的引号。
更改
dept_names[<%=i%>] = <%=dept_list[i]%>;
至
dept_names[<%=i%>] = "<%=dept_list[i]%>";
或简单地
dept_names.push("<%=dept_list[i]%>");
也改变
limit = dept_list.length;
至
limit = dept_names.length;
注意事项:
这里没有理由循环两次,一次在Java中,一次在JS中。您可以做一个简单的Java循环来构建您的选项
使用JSON编码器直接从Java编写JS文字会更清洁和省力。这样也可以避免错误(例如字符串中间的
"
)您应该在JavaScript中声明变量(
limit
,index
)