Как отобразить множественный выбор в Select2 jquery? - PullRequest
0 голосов
/ 29 марта 2020

Моя БД хранит информацию в String следующим образом: Administrator,Anna, поэтому, если я хочу отобразить в Select2 этот предварительный выбор, я знаю, что он должен быть в массиве (извините, если я ошибаюсь). Проблема, мне нужно разделить его на массив и отобразить.

К сожалению, оба имени не отображаются.

enter image description here

Оба имени уже разделяются в массиве.

enter image description here

Появляется, когда имя просто одинарное, как это.

enter image description here

Так как это исправить?

JS:

$.ajax({
    ...
    success: function(response){
            if (response.status == "Success"){
                $("#editLayer3ActivityOwner").val(response.data[0]["task_owner"]).attr("disabled",false);

                $(response.data).each(function(key,value){
                    var owners = value.task_owner.split(',');
                    $(owners).each(function(k,v){
                        $("#editLayer3ActivityOwner").append($("<option>", {
                            response: v,
                            text: v
                        }));
                    });
                    console.log(owners);
                    $("#editLayer3ActivityOwner").select2();
                });
            }
            else {}       
    },
    error: function(e){}
});

1 Ответ

2 голосов
/ 29 марта 2020

Вы можете использовать $("#sel").val(["Administrator","Anna"]).change(); метод. я думаю, что вы получаете ответ в том же формате. поэтому вы можете дать ответ прямо как $("#editLayer3ActivityOwner").val(response.data).change();

$("#editLayer3ActivityOwner").select2({ width: '100%', placeholder: "Choose", allowClear: true });

var response=["Administrator","Anna"]; //Hope you are getting the ajax response as this
 $("#editLayer3ActivityOwner").val(response).change();
<link href="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/css/select2.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.12/js/select2.min.js"></script>

<select id="editLayer3ActivityOwner" multiple name="editLayer3ActivityOwner">

<option value="Administrator">Administrator</option>
<option value="Anna">Anna</option>
</select>
...