2013-07-09 84 views
0

我創建一個遠程請求的PHP頁面簡單選擇2搜索框。SELECT2空的結果

我選用用「JSON」,而不是「JSONP」,似乎正常工作。

的問題是,結果是白:沒有這樣寫道元素列表。

在我不能發表,因爲「我至少需要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:我有兩個結果,因爲,此刻,我正在返回JSON數據作爲直接輸出文本與「echo < < < EOF ...」

謝謝, 莫羅

回答

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

$(element).select2('data', data);