0

PHPページへのリモートリクエストを使用して、単純なselect2検索ボックスを作成しています。

「jsonp」の代わりに「json」を使用することにしましたが、正しく動作しているようです。

問題は、結果が白であることです: 要素リストとしての書き込みはありません。

「投稿するには少なくとも 10 の評判が必要です」という理由で投稿できない画像では... -.- 文字「d」と次の入力ボックスが表示されます。

  1. 読み込みアイコンなし (検索が正常に終了したため)
  2. 「検索」書き込みなし (検索が正常に終了したため)
  3. 検索ボックスの高さは正確に 2 つの結果であり、結果を選択することはできますが、テキストは表示されません..青い選択部分だけが表示されます..

コードは次のとおりです。

function MultiAjaxAutoComplete(element, url) {
    $(element).select2({
        minimumInputLength: 1,
        ajax: {
            url: url,
            dataType: 'json',
            data: function(term, page) {

                return {
                    q: term,
                    page_limit: 10
                };
            },
            results: function(data, page) {
                return {
                    results: data
                };
            }
        },
        formatResult: formatResult,
        formatSelection: formatSelection,
        initSelection: function(element, callback) {
            var data = [];
            $(element.val().split(",")).each(function(i) {
                var item = this.split(':');
                data.push({
                    id: item[0],
                    title: item[1]
                });
            });
            //$(element).val('');
            callback(data);
        }
    });
};

function formatResult(movie) {
    return '<div>' + movie.title + '</div>';
};

function formatSelection(data) {
    return data.title;
};



MultiAjaxAutoComplete('#advertiser', '/AJAXController');

返されるjsonデータは次のとおりです

[{"id":"12889","title":"Donnie Darko" },
 {"id":"8",    "title":"Another title"}
]

PS: 現時点では、「echo <<< EOF ...」を使用して json データを直接出力テキストとして返しているため、2 つの結果が得られました。

ありがとう、マウロ

4

1 に答える 1

0
var data = [
  { "id":"12889", "title":"Donnie Darko" },
  { "id":"8", "title":"Another title"}
]

$(element).select2('data', data);
于 2013-07-29T20:20:12.750 に答える