将字符串数组映射到 Select2 中的结果

Mapping an array of strings to results in Select2

我有这个 JSON 字符串

{"plaats":["Rottevalle","Rotterdam"]}

而且我喜欢使用 Select2

将 "Rottevalle and Rotterdam" 作为我的选择框中的一个项目

我有这个代码。

$("#plaats").select2({
    minimumInputLength: 3,
    tags: [],
    ajax: {
        url: 'plaatsen.php',
        dataType: 'json',
        delay: 250,
        data: function (params) {
            return {
                q: params.term, // search term
                page: params.page
            };
        },
        processResults: function (data) {
            return {
                results: $.map(data, function(obj) {
                    return { id: obj.plaats, text: obj.plaats };
                })
            };
        }
    }
});

问题是我不明白如何在 processResults 中取回 plaats 数据。

问题是您将完整响应传递给 $.map 而不是 plaats 键。

$("#plaats").select2({
    minimumInputLength: 3,
    tags: [],
    ajax: {
        url: 'plaatsen.php',
        dataType: 'json',
        delay: 250,
        data: function (params) {
            return {
                q: params.term, // search term
                page: params.page
            };
        },
        processResults: function (data) {
            return {
                results: $.map(data.plaats, function(obj) {
                    return { id: obj, text: obj };
                })
            };
        }
    }
});