4

したがって、複数を使用しない場合は完全に機能するselect2 ajaxセレクターがありますが、基本的に複数を使用する場合は機能する場合もあれば、機能しない場合もあります。

    $('#organizations').select2(
    {
        placeholder: "Add Organizations!",
        minimumInputLength: 3,
        multiple: true,
        ajax: {
            url: "https://boilerprojects.com/organizations/search",
            dataType: 'json',
            quietMillis: 100,
            data: function (term, page) {
                return {
                q: term, // search term
                page_limit: 10
                };
            },
            results: function (data, page)
            {
                var more = (page * 10) < data.total;
                console.log(data.results);
                return { results: data.results, more: more };
            },
            dropdownCssClass: "bigdrop"
        },
    });

私のPHPから返されるものは次のとおりです:{"results":[{"id":"6","text":"LukePOLO"}]}

そのため、データが入力されていないだけで結果が得られます。

誰にもアイデアはありますか?

4

1 に答える 1

6

その無限スクロールオプションを使用したい場合、あなたの応答は間違っています。

{"results":[{"id":"6","text":"LukePOLO"}]}

次のようになります。

{"results":[{"id":"6","text":"LukePOLO"}], "total":"1"} //Total 1 result

重要な結果はありますが、合計のキーはありません。そして、あなたの投稿データ機能では、あなたが検索する魔女のページを言うべきです。

$('#organizations').select2(
{
    placeholder: "Add Organizations!",
    minimumInputLength: 3,
    multiple: true,
    ajax: {
        url: "https://boilerprojects.com/organizations/search",
        dataType: 'json',
        quietMillis: 100,
        data: function (term, page) {
            return {
            q: term, 
            page_limit: 10,
            page: page //you need to send page number or your script do not know witch results to skip
            };
        },
        results: function (data, page)
        {
            var more = (page * 10) < data.total;
            return { results: data.results, more: more };
        },
        dropdownCssClass: "bigdrop"
    }
});
于 2012-11-29T22:01:17.390 に答える