我无法将值附加到数据表,PHP文件提供JSON响应,但我无法将数据附加到数据表。我已经使用以下代码进行JSON响应
GetKeyWordBids.php
array_push($ret, array("keyword"=>$keyword, "svol"=>$search_volume));
}
//print_r($ret);
echo json_encode($ret);
和Json回复:
[{
"keyword": "interventional cardiology",
"svol": 6600
},{
"keyword": "pediatric cardiology",
"svol": 5400
},{
"keyword": "cardiology jobs",
"svol": 1300
},{
"keyword": "cardiology associates",
"svol": 6600
},{
"keyword": "interventional cardiology jobs",
"svol": 880
},{
"keyword": "european society of cardiology",
"svol": 5400
},{
"keyword": "nuclear cardiology",
"svol": 1600
}],
我的Jquery代码是:
$('#specialty').change(function(){
$("#example1").dataTable().fnDestroy();
var oTable = $('#example1').dataTable({
"aaSorting": []
});
var spevalue = $("#specialty option:selected").text();
var dataString='specialty='+ spevalue;
$.ajax({
type: "POST",
url: "GetKeyWordBids.php",
data: dataString,
success: function(s){
oTable.fnClearTable();
for(var i = 0; i < s.length; i++) {
oTable.fnAddData([
s[i]['keyword'][0],
s[i]['svol'][0]
]);
}
});
});
但我收到的错误如下所示。请让我知道所需的更改。
DataTables警告(表格ID =&#39; example1&#39;):请求的未知参数&#39; 0&#39;来自第0行的数据源
答案 0 :(得分:0)
JSON解析器对JSON非常严格。然后您对数据的实际调用格式错误。所以:
根据splash58的评论,确保您的dataType是JSON。在浏览器的开发人员工具(或Firebug)中,查看XHR。该工具应提供一个标签,用于以格式化的JSON查看响应。如果它没有,或者您在请求中看到错误,则可能会请求错误的标头,或者返回错误的类型。
一般情况下,JavaScript解释器可能会忽略尾随逗号,但JSON解析器是严格的并且不会喜欢它。快速检查JSON格式的方法是将其激活到JSONLint.com以查看它是否有效。您在上面提供的那个不会在您最后删除逗号之前。
我假设你想要完整的&#34;关键字&#34;和&#34; svol&#34;。额外的[0]正在挖掘字符串并返回第一个字符。你对数据的了解太深了!你想要的是s[i]['keyword']
(或s[i].keyword
)和s[i]['svol']
(或s[i].svol
)这个小提琴:http://jsfiddle.net/v07tvuq8/
我不确定fnClearTable
和fnAddData
的组合是您正在寻找的。 DataTables API允许您指定每个列在初始化时应该执行的操作,此后您只需要在其上调用draw()
。不应该迭代您的数据集。