我使用一个自动完成字段从服务器获取数据并在datatable中显示:
$(#).autocomplete({
source: function (request, response) {
$.ajax({
url: "http://myhost.com/webservices/test3.cfm",
data: request,
success: function (data) {
$('#results').dataTable({
"bProcessing": true,
"bJQueryUI": true,
"bLengthChange": true,
"bFilter": true,
"bAutoWidth": false,
"bRetrieve" : true,
"aaData": data ,
"aoColumns": [
{ "sTitle": "Name", "sName": "name" },
{ "sTitle": "Title", "sName": "title" },
{ "sTitle": "Organization", "sName": "organization" },
{ "sTitle": "Email", "sName": "email" },
{ "sTitle": "Status", "sName": "status" }
]
});
}
});
}ajax调用返回的数据如下:
[“史蒂文、格里克”、“总裁”、“金沙公司”、"steven@yahoo.com“、"1”、“史蒂文、格里克”、“协理”、“联盟有限公司”、"steven@yahoo.com“、"1”、“史蒂文、格里克”、“总裁”、“林产品协会”、"steven@yahoo.com“、"1"]
我得到以下错误:
如果我替换"aaData":data
根据数据中的答复:
"aaData":[“史蒂文,格里克”、“总裁”、“金沙公司”、"steven@yahoo.com“、"1”、“史蒂文、格里克”、“合伙人”、“联盟有限公司”、"steven@yahoo.com“、"1”、“史蒂文、格里克”、“总裁”、“林产品协会”、"steven@yahoo.com“、"1"]
它起作用了。
知道我做错了什么吗?
发布于 2013-11-28 16:02:18
在一个同事的帮助下解决了这个问题:我的ajax调用中的数据类型是一个字符串。
$("#firstname").autocomplete({
source: function (request, response) {
$.ajax({
url: "http://myhost.com/webservices/test3.cfm",
data: request,
success: function (data) {
var obj = jQuery.parseJSON(data); <---- typeof data is a string
$('#results').dataTable({
"bProcessing": true,
"bJQueryUI": true,
"bLengthChange": true,
"bFilter": true,
"bAutoWidth": false,
"bRetrieve" : true,
"aaData": obj, <---- Use the parsed json object instead
"aoColumns": [
{ "sTitle": "Name", "sName": "name" },
{ "sTitle": "Title", "sName": "title" },
{ "sTitle": "Organization", "sName": "organization" },
{ "sTitle": "Email", "sName": "email" },
{ "sTitle": "Status", "sName": "status" }
]
});
}
});
},});
https://stackoverflow.com/questions/20131403
复制相似问题