首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JSP中制作级联下拉框?

如何在JSP中制作级联下拉框?
EN

Stack Overflow用户
提问于 2011-01-21 14:05:31
回答 1查看 6.5K关注 0票数 0

我试着在SO中搜索我的问题,发现大多数答案都是针对.Net的,而不是针对Java的。所以再问一遍这个问题。

如何在JSP中创建级联下拉菜单?也就是说,第二个下拉框的值应该取决于第一个。这些值应该从数据库中获取。我知道我应该使用AJAX,但我不知道该怎么做。如果有人能帮上忙,那就帮了大忙了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-21 14:24:10

您需要下载JQuery (JavaScript框架),并将其包含在HTML部分。

代码语言:javascript
复制
<script type="text/javascript" src=PathToJquery.js></script>

在第一个dropdown的OnChange函数中,调用该函数来填充后续的dropdown。$(document).ready(function() { $('#DDIdParent').change(function() { populateChildDropdown('DDIdParent'); }); });

该函数如下所示:

代码语言:javascript
复制
function populateChildDropdown(ddId) {
            var dd = $('#' + ddId);
            $.getJSON('json/mapping?dd=' + ddId, function(opts) {
                $('>option', dd).remove(); // Clear old options first.
                if (opts) {
                    $.each(opts, function(key, value) {
                        dd.append($('<option/>').val(key).text(value));
                    });
                } else {
                    dd.append($('<option/>').text("Please select the parent DD"));
                }
            });
        }

在Servlet的doGet方法中,您将拥有如下代码,以便以JSON字符串的形式从数据库中获取后续dropdown的值:

代码语言:javascript
复制
        Map options = yourDao.callDatabase(parameter);
        String json = new Gson().toJson(options);
        res.setContentType("application/json");
        res.setCharacterEncoding("UTF-8");
        res.getWriter().write(json);

您需要将json/映射映射到web.xml中的servlet。如果需要,您还可以从jquery函数传递参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4755899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档