下面是我的代码,

<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中声明变量(limitindex

10-07 16:29
查看更多