2017-03-23 12 views
1

どこにエラーがありますか?select2はajaxから受け取った結果を表示しません

私のselect2ボックスは、ajaxコールから受信した結果を表示していません。結果はロードできませんでした。ここで

は私のコードです:

HTML:

<select class="airportList form-control" name="From_1"> 
<option disabled selected>Going from</option> 
</select> 

JS:

$(function() { 
    $(".airportList").select2({ 
    minimumInputLength: 1, 
    // data: [{id:'ADL',text:'Adelaide, Australia, ADL'},{id:'MEL',text:'Melbourne, Australia, MEL'}], 
    ajax: { 
     type: "GET", 
     url: "data.php", 
     dataType: 'json', 
     delay: 250, 
     data: function (params) { 
     return { 
      q: params.term, // search term 
      page: params.page 
     }; 
     }, 
     processResults: function (data) { 
     return { 
      results: data 
     }; 
     } 
    } 
    }); 
}); 

data.php(私が受け取ること):

[ 
{id:'ADL',text:'Adelaide, Australia, ADL'}, 
{id:'MEL',text:'Melbourne, Australia, MEL'} 
] 
+0

select2()とは何ですか?それはカスタム関数ですか? ajaxを呼び出すときに、結果を '.always(function(response){ console.log(response [0] .id)});のようにoprocessResults以外のものを使って表示することができます。 –

+0

Select2はよく知られているJSプラグインです –

+0

いいえ、 'select2()'は 'select2' [project](https://select2.github.io/)の関数です。結果を 'console.log'する方法を理解できませんでしたか?要求の結果はブラウザに表示されますが、機能によって適切に処理されないようです。 –

答えて

2

申し訳ありませんが、ここでは更新された回答です:

processResults: function(data) { 
    return { 
    results: $.map(data, function(obj) { 
     return { 
     id: obj.id, 
     text: obj.text 
     }; 
    }) 
    }; 
} 

この部分は、私が思っている問題です。 この例を参照してください:http://jsfiddle.net/jes0wrka/

+0

私の場合、結果が返されたときにもこの関数は呼び出されませんでした。 –

0

だから、私の場合は問題がdata.phpファイルからJSONの形式が誤っていたということでした!!!:

[ 
{id:'ADL',text:'Adelaide, Australia, ADL'}, 
{id:'MEL',text:'Melbourne, Australia, MEL'} 
] 

CORRECT JSONは次のようになります。

[ 
{"id":"ADL","text":"Adelaide, Australia, ADL"}, 
{"id":"MEL","text":"Melbourne, Australia, MEL"} 
] 
関連する問題