选择不显示搜索结果

selectize not displaying search results

我正在尝试在 Selectize 中实现 Remote Source。

我正在访问来自 api 的数据。格式如下:

concept_id,name
228,Pelecypoda
286,Pelecypoda

当我尝试在渲染中控制项目时,它没有得到控制。但是当我成功控制台时,数据被控制台。

$('#search_text').selectize({
    theme: 'name',
    valueField: 'url',
    labelField: 'name',
    searchField: 'name',
    options: [],
    create: false,
    render: {
        option: function(item, escape) {
            console.log(item);
            return '<div>' +
                '<span class="title">' +
                    '<span class="by">' + escape(item.name) + '</span>' +
                '</span>' +
                '<span class="description">' + escape(item.concept_id) + '</span>' +
            '</div>';
        }
    },
    score: function(search) {
        var score = this.getScoreFunction(search);
        return function(item) {
            return score(item) * (1 + Math.min(item.watchers / 100, 1));
        };
    },
    load: function(query, callback) {
        if (!query.length) return callback();
        $.ajax({
            url: "http://192.241.245.176:4567/api1",
            dataType: 'text',
            type: "GET",
            data: {
                q: query,
                page_limit: 10
            },
            error: function() {
                callback();
            },
            success: function(res) {
                var result = {};
                result.name = d3.csv.parse(res);
                console.log(result);
                callback(result.name);
            }
        });
    }
});

谁能告诉我哪里错了?

我相信有一个键值标准被强制执行,但文档没有很全面地涵盖它。它在那里被提及一次,但没有进一步讨论。

您必须 return 来自服务器的具有名称和值属性的结果:

名称=>名称数据

值=>值数据

悬崖笔记:$items[$i]['name']['id']

悬崖笔记:$items[$i]['value'][$key]

在我的例子中构建我的结果看起来像这样 PHP 代码。

    $group['location'] = range(0,5);
                                        //'street',
                                        //'city',
                                        //'county',
                                        //'state',
                                        //'country',
                                        //'country2',

    $group['property']  = range(0,4);
                                        //'title',
                                        //'property_sub_type',
                                        //'subdivision_name',
                                        //'sub_cat',
                                        //'interior_features',

    $group['school']    = range(0,2);
                                        //'junior_high_School',
                                        //'middle_school',
                                        //'high_school',

    $group['mls']       = range(0,1);
                                        //'mls_area'
                                        //'mls_id#'
    $items = array();
    for ($i = 0; $i < count($res); $i++)
    {
        $items[$i]['name']['id'] = array_shift($res[$i]);
        $offset          = 0;
        foreach ($group as $key => $val)
        {
            $items[$i]['value'][$key] = array_filter(array_slice($res[$i], $offset, count($group[$key])));
            $offset += count($group[$key]);
        }
    }

产生这个数据结构

Array
(
    [0] => Array
        (
            [name] => Array
                (
                    [id] => 119
                )

            [value] => Array
                (
                    [location] => Array
                        (
                            [street] => 25700  Cliff Cir  
                            [city] => Spicewood
                            [county] => Travis
                            [state] => Texas
                        )

                    [property] => Array
                        (
                            [property_sub_type] => Single Lot
                            [subdivision_name] => Lakecliff On Lake Travis Sec 01
                        )

                    [school] => Array
                        (
                            [junior_high_School] => N/A
                            [middle_school] => Marble Falls
                            [high_school] => N/A
                        )

                    [mls] => Array
                        (
                            [mls_area] => 12
                            [mls_id#] => 4434048
                        )

                )

        )