2013-04-19 13 views
11
के माध्यम से डेटा नहीं मिल रहा

मैं निम्नलिखित कोड जो Select2Select2 AJAX

$('#Organisation').select2({ 
    ajax: { 
     url: AppURL + 'Organisations/Manage/SearchByName/', 
     dataType: 'json', 
     quietMillis: 100, 
     data: function (term) { 
      return { 
       term: term 
      }; 
     }, 
     results: function (data) { 
      return { 
       results: data 
      }; 
     } 
    } 
}); 

का उपयोग कर अगर मैं वेब निरीक्षक का उपयोग कर अनुरोध पर नज़र डालें जब 'O' खोज AJAX के माध्यम से डेटा प्राप्त किया जाना चाहिए है मैं:

[{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1}] 

कोई विचार क्या मैं गलत कर रहा हूं? मैं परिणाम समारोह में कुछ गलत मानता हूँ।

त्रुटि मैं मिलता है: Uncaught TypeError: Cannot call method 'toUpperCase' of undefined

+0

क्या आप जेसन प्रतिक्रिया संरचना –

उत्तर

33

प्रयास करें

$('#Organisation').select2({ 
    ajax: { 
     url: 'data.json', 
     dataType: 'json', 
     quietMillis: 100, 
     data: function (term) { 
      return { 
       term: term 
      }; 
     }, 
     results: function (data) { 
      var results = []; 
      $.each(data, function(index, item){ 
      results.push({ 
       id: item.ID, 
       text: item.label 
      }); 
      }); 
      return { 
       results: results 
      }; 
     } 
    } 
}); 

डेमो: Plunker

+0

बदल सकते हैं यह बहुत उपयोगी नमूना है। मेरी समस्या 4 घंटे खोज के बाद हल हो गई। धन्यवाद –

4

ऊपर समाधान के अलावा आप के बजाय निम्नलिखित json लौटने की एक बात कर सकते हैं,

[{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1}]

लौट इस

[{"text":"Organisation 1","id":2},{"text":"Organisation 2","id":1}]

एक ही समस्या का सामना करना पड़ा और कुछ अन्य द्वारा प्रस्तावित समाधान देखने के बाद यह पता लगा।

संबंधित मुद्दे