根据选定的复选框值获取下拉列表选项

时间:2019-12-09 04:04:33

标签: php jquery html

我有以下代码可从数据库生成复选框

< table class="table">
  < thead>
    < /thead>
      < th>
        <?php
           $oaNamesQuery = "SELECT DISTINCT oaName FROM oaDetails";
            $oaNamesQueryExecute = mysqli_query($conn, $oaNamesQuery);
             while($oaNamesQueryRow = mysqli_fetch_array($oaNamesQueryExecute)){
                   $oaName = $oaNamesQueryRow['oaName'];
                   echo '<div class = "checkbox-group" required style="float:left; margin-right: 25px;">                          <input class="checkBoxes" type="checkbox" id="checkBoxArray"             name="checkBoxArray[]" value="'.$oaName.'"> '.$oaName.'</div>';
                        }
                    ?>
          < /th>
            < /table>

还有另一个输入框,其中输入类型为数字

<div class="col-sm">
  <label for="numberOfShiftPerDay">Number</label>
  <input type="number" class="form-control" id="numberOfShiftPerDay" name="numberOfShiftPerDay" placeholder="No: " onchange="disablingRoutine()" min="1" max="4">
</div>

示例界面如下

enter image description here

当我输入一些数字时,将根据我输入的数字出现一个下拉菜单。例如:如果键入1,将使用jQuery'OnChange'出现一个下拉列表,如下所示。用户界面如下所示:

enter image description here

我需要的

我需要下拉菜单选项基于用户选择的复选框。例如:如果用户选中了复选框X,Y和XX,则这些下拉列表应显示X,Y和XX。有人可以帮我怎么做吗?

编辑1

根据stackoverflow成员的建议在更改例程上添加了Javascript函数。但是现在有重复的问题。在我更改的代码下方

if ($("#numberOfShiftPerDay").val() == 1) {
  $.each($("input[name='checkBoxArray[]']:checked"), function() {
    cval = $(this).val();
    $('#oaInShift1').append('<option>' + cval + '</option>')
  });
} else if ($("#numberOfShiftPerDay").val() == 2) {
  $.each($("input[name='checkBoxArray[]']:checked"), function() {
    cval = $(this).val();
    $('#oaInShift2').append('<option>' + cval + '</option>')
  });
} else if ($("#numberOfShiftPerDay").val() == 3) {
  $.each($("input[name='checkBoxArray[]']:checked"), function() {
    cval = $(this).val();
    $('#oaInShift3').append('<option>' + cval + '</option>')
  });
} else {
  $.each($("input[name='checkBoxArray[]']:checked"), function() {
    cval = $(this).val();
    $('#oaInShift4').append('<option>' + cval + '</option>')
  });
}

1 个答案:

答案 0 :(得分:2)

您可以获取选定的复选框值,然后将其附加到onchange函数的下拉列表中。

尝试一下:

function disablingRoutine()
{
    $.each($("input[name='checkBoxArray[]']:checked"), function(){
        cval = $(this).val();
        $('#dropdownID').append('<option>'+cval+'</option>')

    });    
}

编辑2

function disablingRoutine()
{
    cdata = '';
    $.each($("input[name='checkBoxArray[]']:checked"), function(){
        cval = $(this).val();
        cdata += '<option>'+cval+'</option>';
    }); 
    $('#dropdownID').html(cdata)   
}