2013-03-01 17 views
5

İşte json dizisi, coldfusion sayfamdan döndüğü gibi görünüyor: [{"client":"Asante","id":12},{"client":"City of Lancaster","id":14},{"client":"Massey Energy","id":35},{"client":"Northeast Utilities","id":68},{"client":"Washtenaw","id":50}]. Firebug, her şeyin mükemmel çalıştığını iddia ediyor ancak select2 eklentisinde hiçbir veri görünmüyor.select2 ajax gösterilmeyecek json verisi döndü

Sorunun ne olabileceğini bilen var mı? Sütun isimlerini mi geri alacak?

Select2 çağrı:

$(".select").select2({ 
    allowClear: true, 
    blurOnChange: true, 
    openOnEnter: false, 
    ajax: { 
     url: "/surveymanagement/admin/client.cfc", 
     dataType: 'json', 
     data: function (term, page) { 
      return { 
       method: "GetClientsByName", 
       name: term 
      }; 
     }, 
     results: function (data, page) { 
      return { results: data }; 
     } 
    } 
}); 
+1

veri formatının gerekir '[{" text önemlidir ":" Asante "," id ": 12}, ...]' başka bir deyişle, '{results: data, text:' client '} ' –

cevap

6

Veri gerekir biçimi daha sonra burada gerekli ilave şeyler oluyor size json dize "text": "something" dışında bir şey kullanmak gerekiyorsa {results: data, text: 'client'}

6

geçmesi gereken başka [{"text":"Asante","id":12}, ...] ait: formatResults kullanmak verilerin gösterilmesini sağlamak için.

$(".select").select2({ 
    allowClear: true, 
    blurOnChange: true, 
    openOnEnter: false, 
    ajax: { 
     url: "/surveymanagement/admin/client.cfc", 
     dataType: 'json', 
     data: function (term, page) { 
      return { 
       method: "GetClientsByName", 
       name: term 
      }; 
     }, 
     results: function (data, page) { 
      return { results: data }; 
     } 
    }, 
    formatResult: function (data) { 
     return "<div class='select2-user-result'>" + data.client + "</div>"; 
    }, 
    formatSelection: function (data) { 
     return data.client; 
    } 
}); 

Aksi Arun haklı sadece biçimi kullanın gerektiğini [{"id":1,"text":"client"}]

1

evet çok yaşlı :) ama bugün gerekli ve şu şekilde çözülür (Symfony2'ye kullanarak): İşte sabit sürümü:


anahtar 'sonuçlarına'

$opts = []; 

foreach($items as $item) 

    $opts['results'][] = ['text' => $item->getXyz(), 'id' => $sk->getId()]; 

return new JsonResponse($opts);