1

以前のjsが新しいデータベース構造で機能しなかったため、最初からやり直さなければなりませんでした。

JavaScript を使用して、以前のドロップダウン リストの選択に依存するドロップダウン リストを作成する方法がわかりません。

合計で 5 つのドロップダウン リストがあり、以前に選択した選択肢に応じてオプションが選択されています。

私が抱えている問題は、フォーム送信時に GET を使用すると作成されるドロップダウン ボックスが値を送信せず、その値を定義する方法がわからないことです。

これらのドロップダウン リストの作成についてアドバイスをいただけないでしょうか。Google 検索はアイデアをもたらしますが、ドロップダウン リストが 2 つ以上あるものには十分ではありません。

ありがとう

html

<select id="product" name="products" onchange="configureDropDownLists(this,'faulttype')">
    <option value="">select</option>

    <option value="test1">test1</option>
    <option value="test2">test2</option>
    <option value="test3">test3</option>
    <option value="test4">test4</option>

</select>

    Fault Type:

    <select id="faulttype" name="faulttypes" onchange="configureDropDownLists2(this,'faulttype2')">
        <option>{blank}</option>
    </select>

    Fault Type2:

    <select id="faulttype2" name="faulttypes2" onchange="configureDropDownLists3(this,'faulttype3')">
        <option>{blank}</option>
    </select>

    Fault Type3:

    <select id="faulttype3" name="faulttypes3">
        <option>{blank}</option>
    </select>

    <input type="submit" value="Search">
    </fieldset>

js

var test1 = new Array('test5', 'test6', 'test7');
var test2 = new Array('test8', 'test9', 'test10');
var test3 = new Array('test11', 'test12', 'test13');
var test4 = new Array('test14', 'test15', 'test16');

switch (product.value) {

    case 'test1':
        document.getElementById(faulttype).options.length = 0;
        for (i = 0; i < test1.length; i++) {
            createOption(document.getElementById(faulttype), test1[i], test1[i]);
        }
        break;

    case 'test2':
        document.getElementById(faulttype).options.length = 0;
        for (i = 0; i < test2.length; i++) {
            createOption(document.getElementById(faulttype), test2[i], test2[i]);
        }

        break;
    case 'test3':
        document.getElementById(faulttype).options.length = 0;
        for (i = 0; i < test3.length; i++) {
            createOption(document.getElementById(faulttype), test3[i], test3[i]);
        }
        break;

    case 'test4':
        document.getElementById(faulttype).options.length = 0;
        for (i = 0; i < test4.length; i++) {
            createOption(document.getElementById(faulttype), test4[i], test4[i]);
        }
        function configureDropDownLists2(faulttype, faulttype2) {
            var test5 = new Array('test15', 'test14');
            var test6 = new Array('test16', 'test17');

            switch (faulttype.value) {
                case 'test5':
                    document.getElementById(faulttype2).options.length = 0;
                    for (i = 0; i < test5.length; i++) {
                        createOption1(document.getElementById(faulttype2), test5[i], test5[i]);
                    }
                    break;

                case 'test6':
                    document.getElementById(faulttype2).options.length = 0;
                    for (i = 0; i < test6.length; i++) {
                        createOption1(document.getElementById(faulttype2), test6[i], test6[i]);
                    }
                    break;
            }

            function createOption1(ddl, text, value) {
                var opt = document.createElement('option');
                var ddl = document.getElementById('faulttype2');

                opt.value = value;
                opt.text = text;
                ddl.options.add(opt);
            }
4

0 に答える 0