Here is what the json string looks like that gets returned from my coldfusion page: [{"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 claims everything is working perfectly but none of the data shows up in the select2 plugin.
Does anyone know what the problem might be? Should it be returning column names or something?
select2 call:
$(".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 };
}
}
});
Your data must of format [{"text":"Asante","id":12}, ...]
else you need to pass {results: data, text: 'client'}
If your json string needs to use something other than "text": "something"
then here's the added stuff needed: use formatResults
to get the data to show up. Here's the fixed version:
$(".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;
}
});
Otherwise Arun is right that you just need to use the format [{"id":1,"text":"client"}]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With