Select2 设置多选选项

Select2 set multiple selected options

我一直在寻找解决以下问题的解决方案,但是我阅读的以前的问题没有产生成功的结果。

我有一个 JSON 编码数组存储在数据库中,例如 ["2",2,5]。我需要从数组中删除第一个值,并将剩余的项目用于 select 来自 select2 的多个 select 中的特定选项。下面显示的当前解决方案显示了与剩余数组的第一个值对应的选项,而不是第二个值。有什么建议吗?

$("#sltETags").select2({ placeholder: 'Select a Primary Tag', minimumResultsForSearch: 8}).select2('val', [<?php $LstTags = json_decode($row["Tags"]); for($i = 1; $i < count($LstTags); $i++){ if($i != count($LstTags)-1){ echo '"'.$LstTags[$i].'",'; } else { echo '"'.$LstTags[$i].'"'; }} ?>]);

结果

$("#sltETags").select2({ placeholder: 'Select a Primary Tag', minimumResultsForSearch: 8}).select2('val', ["2","5"]);

HTML代码

<select class="form-control select2" multiple="multiple" data-placeholder="Select Secondary Tags" id="sltETags">
    <?php
    $LstTags = $TagManager->displayTags(0);
    for($i = 0; $i < count($LstTags); $i++){
        ?><option value="<?php echo $LstTags[$i][0]; ?>"><?php echo $LstTags[$i][1]; ?></option><?php
    } ?>
</select>

问题似乎出在更改所选项目的 Javascript 函数上。我的修复如下:

            <?php

                $LstTags = json_decode($row["Tags"]);

                for($i = 1; $i < count($LstTags); $i++){
                    $LstTags[$i] = "$LstTags[$i]";
                }

                $LstTags = json_encode($LstTags);

            ?>
            $("#sltETags").select2({ placeholder: 'Select a Primary Tag', minimumResultsForSearch: 8});
            $("#sltETags").val(<?php echo $LstTags; ?>).select2();