1

さて、私はこれを説明するために最善を尽くします。複数の選択要素で表示される会社の部門のリストがあります。各従業員は、これらの部門のいくつかに接続できます。このデータはデータベースから取得します。部門の1つを選択すると、その部門の従業員のリストが別の複数選択要素に表示されます。複数の部門を選択した場合、それらの部門の従業員が表示されます。そしてそれが問題です。選択した部門の1つでしか機能しません。

選択した部門のすべての従業員が複数選択要素に表示されるようにしたいです。また、1人の従業員が複数の部門に属している場合、その従業員は1回だけ表示されます。

うまくいけば、誰かが私を正しい方向に向けることができます。私は自分のコードを煮詰めようとしたので、これはデータベースから何かを取得せずにハードコードされたバージョンです。

ここにコードを投稿する代わりに、jsFiddleを作成しました

4

1 に答える 1

2

コードにもう1つのループとif句を追加しましょう。さらに、次obj.options[k].valueの代わりに使用しますobj.value

for (k = 0; k < obj.options.length; k++) {                   // <-- add here
    if (obj.options[k].selected) {                           // <-- add here
        for (i = 0; i < selOptions.length; i++) {
            if (obj.options[k].value == selOptions[i][0]) {  // <-- change here
                for (j = 1; j < selOptions[i].length; j++) {
                    oSel2.options[oSel2.options.length] = new Option(
                        selOptions[i][j], selOptions[i][j], false, false);
                }
                i = selOptions.length;
            }
        }
    }
}

デモ:http: //jsfiddle.net/Kw5Km/2/

于 2012-09-05T13:02:32.900 に答える