【问题标题】:How to change list(select) data dynamically如何动态更改列表(选择)数据
【发布时间】:2014-01-26 07:19:22
【问题描述】:

我正在添加产品详细信息。 因此,为此我必须添加产品属性,产品功能。

我正在从 mysql 表中加载所有属性数据。

我正在使用一种机制,第一个用户必须从列表中选择属性类别(选择控件),当用户选择类别时,其他列表(选择控件)的数据会发生变化。

主要类别图片:

子属性类别:

我在 JavaScript 数组中添加了这样的数据:

var at_category_id = [];
var at_category_name = [];

<%
    List<Integer> aIDList = (List<Integer>) request.getAttribute("aID");
    List<String>  aNAMEList = (List<String>) request.getAttribute("aNAME"); 

    for (int i = 0; i < aIDList.size(); i++) 
    {
     %>
        at_category_id.push(<%= aIDList.get(i) %>);
        at_category_name.push(<%= aNAMEList.get(i) %>);
    <%
    }
%>

var option_str = document.getElementById('list_main_category');

    for (var i=0; i<at_category_id.length; i++) 
    {
        option_str.options[option_str.length] = new Option(at_category_id[i],at_category_name[i]);
    }

我对属性做了同样的事情,并将数据添加到 JavaScript 数组。

var at_id = [];
var at_name = [];

<%
    List<Integer> acIDList = (List<Integer>) request.getAttribute("acID");
    List<String>  acNAMEList = (List<String>) request.getAttribute("acNAME");   

    for (int i = 0; i < aIDList.size(); i++) 
    {
     %>
        at_id.push(<%= acIDList.get(i) %>);
        at_name.push(<%= acNAMEList.get(i) %>);
    <%
    }
%>

但现在我不知道如何前进。

我想做这样的事情。

表示当用户单击作为主类别的第一个列表时,第二个列表将如何更改?

请给点建议。

【问题讨论】:

    标签: java javascript dynamic drop-down-menu


    【解决方案1】:

    通常的方法是对第一个组合框的值更改进行 javascript 操作。

    此时,您可以(简单的方法)提交整个表单,然后发回添加了额外价值的新页面,或者(稍微复杂一点)执行 AJAX 调用来获取数据并填充新的下拉列表。

    【讨论】:

    • 我知道先生可以在onchange='functionName()' 上调用函数。但如果我得到简单的例子,那对我来说会更好。因为我对 JavaScript 的了解不够。
    • (那是在 Spring 中,对于标准选择,只需使用 onchange 并忽略其余部分)
    • 是的,我在简单的jsp中这样做,我想要简单的例子。
    • 先生,我已经更新了问题,我已经添加了图像,可以显示我想要哪种类型的机制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2018-02-27
    • 2014-02-10
    • 1970-01-01
    相关资源
    最近更新 更多