javascript如果选择了下拉列表,则将信息(数据)发送到列表

时间:2016-02-03 09:42:24

标签: javascript

我有三个下拉列表,

  1. 选择一侧:左侧或右侧。另一个
  2. 选择材料; alu和Inox,另一个
  3. 选择尺寸:22,17或46
  4. 我需要在桌子上选择数据。例如:
        如左边和alu和22被选中,我需要这些信息    line 1 = 13857     Line 2 = 13861    Line 3 = 17989
    其他例子:     如右和inox以及17选中,我需要有关的信息    Line 1 = 13856     Line 2 = 21839     Line 3 = 17988

    enter image description here

    来自评论的编辑

    我有三个清单:

    列表1:Code 22 =13857 Code 17 = 13856 Code 46 = 13855

    列表2:Aluminiun left =13681 Aluminiun right =13862 Inox left = 21838 Inox right = 21839

    列表3:Code L22 = 17989 Code R22 = 17990 Code L17 = 17987 Code R17 = 17988 Code L46 = 17991 Code R46 = 17992

    三个下拉列表应与选项相关联:

    下拉1:左或右

    下拉2:22,17或46

    下拉3:铝或不锈钢

    通过所有三个下拉列表的组合,我应该有一个列表,

    第1行的代码A:从下拉列表2,例如如果选择22,那么应该出现数字13857

    第2行的代码B:来自组合下拉列表1和下拉列表3的信息。

    例如:left和inox,那么应该出现数字21838

    第3行的代码C:来自组合下拉列表1和下拉列表2的信息。

    例如:22和左边,然后应该出现数字17989我有一个按钮来计算功能。

    问题的描述并不顺利。我的工作例如:link和下拉列表的示例,或者如果使用单选按钮更好。 link可以添加更多var。例如:var S22 = 13857 var S17 = 13856 var S22 = 13855 var A22L = 13857

1 个答案:

答案 0 :(得分:0)

我认为,您需要这样的数据结构:

{
    "line1": {
        "17": 13856,
        "22": 13857,
        "46": 13855
    },
    "line2": {
        "left": {
            "alu": 13861,
            "inox": 21838
        },
        "right": {
            "alu": 13862,
            "inox": 21839
        }
    },
    "line3": {
        "left": {
            "17": 17987,
            "22": 17989,
            "46": 17991
        },
        "right": {
            "17": 17988,
            "22": 17990,
            "46": 17992
        }
    }
}

这允许选择想要的行并获取所选项目中所选项目的值。

使用

进行访问非常简单
// example for 17 right inox
data.line1['17']
data.line2['right']['inox']
data.line3['right']['17']

在一个有效的例子中:

var data = {
    line1: {
        '22': 13857,
        '17': 13856,
        '46': 13855,
    },
    line2: {
        left: {
            alu: 13861,
            inox: 21838
        },
        right: {
            alu: 13862,
            inox: 21839
        }
    },
    line3: {
        left: {
            '22': 17989,
            '17': 17987,
            '46': 17991,
        },
        right: {
            '22': 17990,
            '17': 17988,
            '46': 17992,
        }
    }
};

function getCode() {
    function getValue(name) {
        return document.order[name].options[document.order[name].selectedIndex].value
    }

    var size = getValue('size'),
        side = getValue('side'),
        material = getValue('material');
    document.getElementById('line1').innerHTML = data.line1[size];
    document.getElementById('line2').innerHTML = data.line2[side][material];
    document.getElementById('line3').innerHTML = data.line3[side][size];
}
<form name="order">
    Size
    <select name="size" onchange="getCode();">
        <option value="22">22 mm</option>
        <option value="17">17 mm</option>
        <option value="46">46 mm</option>
    </select>
    Side
    <select name="side" onchange="getCode();">
        <option value="left">Links</option>
        <option value="right">Rechts</option>
    </select>
    Material
    <select name="material" onchange="getCode();">
        <option value="alu">Alu</option>
        <option value="inox">inox</option>
    </select>
</form>
<p>
    Line 1: <span id="line1"></span><br />
    Line 2: <span id="line2"></span><br />
    Line 3: <span id="line3"></span>
</p>