以下是从我的coldfusion页面返回的json字符串的样子:[{"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声称一切正常,但select2插件中没有任何数据显示。
有谁知道问题可能是什么?它应该返回列名还是什么?
select2电话:
$(".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 };
}
}
});
答案 0 :(得分:6)
您的数据格式必须为[{"text":"Asante","id":12}, ...]
,否则您需要传递{results: data, text: 'client'}
答案 1 :(得分:6)
如果你的json字符串需要使用"text": "something"
之外的其他内容,那么这里需要添加的东西:使用formatResults
来显示数据。这是固定版本:
$(".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;
}
});
否则Arun是对的,您只需要使用格式[{"id":1,"text":"client"}]
答案 2 :(得分:1)
是的,它太老了:)但我今天需要它并像这样解决它(使用Symfony2):
$opts = [];
foreach($items as $item)
$opts['results'][] = ['text' => $item->getXyz(), 'id' => $sk->getId()];
return new JsonResponse($opts);
关键'结果'很重要