如何更改第一个选择选项时,如何刷新第二个选择选项?

时间:2015-11-09 07:53:48

标签: javascript php

如果更改第一个选择选项,如何刷新第二个选择选项?

我在这里为patient_code2生成数组:

    //GENERATE NUMBERS FOR CYCLE
    function patsient(selector) {
        var i;
        for (i = 1; i <= 99; i++) {
            var text = '0' + i;
            selector.options[i - 1] = new Option(text.substr(text.length - 2, 2));
        }

    }
    patsient(document.getElementById("patient_code2"));

我在这里为patient_code生成数组:

    function myFunction(selector) {
        var i;
        for (i = 1; i <= 999; i++) {
            var text = '00' + i;
            selector.options[i - 1] = new Option(text.substr(text.length - 3, 3));
        }
    }
    //usage:
    myFunction(document.getElementById("patient_code"));

这里我将数据库中的最后一个值插入到字段中:

    //INSERT THE VALUE FROM DATABASE
    var tsykkel_id = '<?php foreach ($tsykkel_id as $row){echo $row['patsiendi_tsykkel'];}?>';
    $('#patient_code2')[0].options[parseInt(tsykkel_id)].selected = true;

        $(document).ready().on('change', '#patient_code2', function () {
            var index = $('option:selected', $(this)).index();
            $('option', $(this)).each(function (i, x) {
                if (i < index) { $(this).remove(); }
            });
        });

HTML

                    <select name="patient_code" data-placeholder="" id="patient_code" class="chosen-select form-control" tabindex="2">
                    </select>

                    <label class="control-label">Tsükkel:</label>
                    <select name="patient_code2" data-placeholder="" id="patient_code2" class="chosen-select form-control" tabindex="2">
                    </select>

因此,假设那个人从第一个开始选择002,那么第二个应该从01开始。

2 个答案:

答案 0 :(得分:2)

然后尝试一下。代码已经过测试。

$(document).ready().on('change','#patient_code2',function(){
    var index = $('option:selected',$(this)).index();
    $('option',$(this)).each(function(i,x){
        if(i<index){$(this).remove();}
    });
    $('select#patient_code').prop('selectedIndex', 0);
});

小提琴:http://jsfiddle.net/roullie666/69j94ro6/2/

答案 1 :(得分:0)

您可以在找到匹配项后开始打印。你提出问题后,我正在写两种方式吗?

对于javascript版本,使用roullie没有重复点。

<?php 
$flag = false;

foreach ($tsykkel_id as $row) {
    if ($selected) {
        $flag = true;
    }
    if ($flag) {
        $row['patsiendi_tsykkel'];
    }
}?>