2013-03-01 37 views
5

Đây là chuỗi json trông giống như được trả lại từ trang coldfusion của tôi: [{"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 tuyên bố mọi thứ đang hoạt động hoàn hảo nhưng không có dữ liệu nào xuất hiện trong plugin select2.select2 ajax sẽ không hiển thị dữ liệu json được trả lại

Có ai biết vấn đề có thể là gì không? Có nên trả lại tên cột hay gì đó không?

Select2 gọi:

$(".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

dữ liệu của bạn phải định dạng '[{" text ":" Asante "," id ": 12}, ...]' khác bạn cần phải chuyển '{results: data, text: 'client'}' –

Trả lời

6

Dữ liệu của bạn phải định dạng [{"text":"Asante","id":12}, ...] khác mà bạn cần phải vượt qua {results: data, text: 'client'}

6

Nếu chuỗi json của bạn cần phải sử dụng một cái gì đó khác hơn "text": "something" thì đây là những thứ bổ sung cần thiết: sử dụng formatResults để dữ liệu hiển thị. Dưới đây là phiên bản cố định:

$(".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; 
    } 
}); 

Nếu không Arun là đúng mà bạn chỉ cần sử dụng định dạng [{"id":1,"text":"client"}]

1

vâng đó là quá già :) nhưng tôi cần nó hôm nay và giải quyết nó như thế này (sử dụng Symfony2):

$opts = []; 

foreach($items as $item) 

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

return new JsonResponse($opts); 

các 'kết quả' Điều quan trọng là quan trọng

Các vấn đề liên quan