0

CodeIgniter フレームワークと組み合わせて Select2 プラグインを使用しようとしています。多くの努力の末、なんとか AJAX データで動作させることができました。しかし、今では奇妙な問題があります。名前全体を入力した後でも、プラグインは検索用語と一致しない無関係なオプションを排除しません.

以下のスクリーンショットはこれを示しています。

http://i.imgur.com/MfLcuf6.jpg?1

Firebug コンソールは次のようになります。

http://i.imgur.com/Qvko6mX.jpg

以下は私のJavascriptコードとコントローラーのコードです

Javascript:

$("#mentor-typeahead").select2({
    width: "100%",
    placeholder: "Enter a mentor name",
    maximumSelectionSize: 5,
    minimumInputLength: 2,
    multiple: true,
    ajax: {
        url: 'get_mentor_multi_list',
        quietMillis: 500,
        cache: true,
        dataType: 'json',
        results: function (data) {
            return { results: data };
        }
    }
});

コントローラ

function get_mentor_multi_list($query = null)
{
    $answer = array(array('id'=>1, 'text'=>'Inigo Montoya'),
                    array('id'=>2, 'text'=>'Zoey Deschanel'),
                    array('id'=>3, 'text'=>'Harry Potter'),
                    array('id'=>4, 'text'=>'Nicole Scherzinger'),
                    array('id'=>5, 'text'=>'Xerxes Mistry'),
                    array('id'=>6, 'text'=>'Tom Marvollo Riddle'),
                    array('id'=>7, 'text'=>'Light Yagami'),
                    array('id'=>8, 'text'=>'Vic Mackey'),
                    array('id'=>9, 'text'=>'Clark Kent'));

    echo json_encode($answer);
}

何が問題を引き起こしているのか、私は完全に混乱しています。こちらのリンクに記載されている解決策も試しましたが、役に立ちませんでした。どんな助けでも大歓迎です。

要求に応じて AJAX 呼び出しパラメーターを変更しましたが、出力は同じままです...

$("#mentor-typeahead").select2({
        width: "100%",
        placeholder: "Enter a mentor name",
        maximumSelectionSize: 5,
        minimumInputLength: 2,
        multiple: true,
        ajax: {
            url: 'get_mentor_multi_list',
            quietMillis: 200,
            dataType: 'json',
            data: function (term, page) {
                return {
                              q: term,
                              page_limit: 10
                            };
                   },
            results: function (data, page) {
                return data;
            }
        }
4

3 に答える 3