我遇到了datables服务器端处理服务器响应的问题。到目前为止,Ajax调用工作:Datatables服务器响应不显示
$('#result_tbl').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "search_synagogue_ajax.php",
"aoColumns":[
{ "sTitle": "Column1", "mData": "string" },
{ "sTitle": "Column2", "mData": "stirng" }
],
"fnServerData": function (sSource, aaData, fnCallback) {
var countries = new Array();
aaData.push({"name": "country", "value": countries});
console.log(aaData);
$.ajax({
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": aaData,
"success": function(data) {
console.log(data);
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
);
我的回答是创造这个样子的:
$array = array(
"aaData" => array(
array(
'test1',
'test1',
),
array(
'test2',
'test2',
)
)
);
echo json_encode($array);
我也得到:
{"aaData":[["test1","test1"],["test2","test2"]]}
然而,该表将不会显示给定测试数据。 Ajax的成功被称为...我注意到,有些人声称大括号不允许在数据表< 1.8(我使用1.9.4)。有人知道我在这里做错了吗?
编辑:也许我理解错了什么。我想要做的是将一些参数发布到ajax文件,然后获取它的响应并将其插入到我的数据表中?我必须在ajax成功回调中手动执行此操作吗?
EDIT2:仍然无法正常工作?有什么建议?
EDIT3:尝试了更多simplier例如,即使没有成功:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>clientAjax</title>
<meta name="description" content="">
<meta name="author" content="">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript" src="lib/DataTables-1.9.4/media/js/jquery.dataTables.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.hist_data').on('click', function(){
$('.myTable').dataTable({
"bProcessing": false,
"bServerSide": true,
"bJQueryUI": true,
"sAjaxSource": "serverAjax.php",
"sAjaxDataProp": "data",
"fnServerData" : function(sSource, aoData, fnCallback) {
request = $.ajax({
"dataType" : "json",
"type" : "POST",
"url" : sSource,
"data" : aoData,
"success" : function(data) {
console.log(data);
},
"error": function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
},
"aoColumns": [
{ "mData": "id" },
{ "mData": "name" },]
});
});
});
</script>
</head>
<body>
<div>
<header>
<h1>clientAjax</h1>
</header>
<nav>
<p>
<a href="/">Home</a>
</p>
<p>
<a href="/contact">Contact</a>
</p>
</nav>
<div class="hist_data">Click here</div>
<table class="myTable">
</table>
<footer>
</footer>
</div>
</body>
</html>
和Ajax文件:
<?php
$array = array(
"aaData" => array(
array(
'id' => 1,
'name' => "ONE"
),
array(
'id' => 2,
'name' => "TWO"
)
)
);
echo json_encode($array);
?>
firefox在控制台中显示什么?这可能是一个JS错误。 – luqita
我使用chrome进行调试 - 控制台不给我任何错误,并且成功输出到控制台看起来正确。我还使用JSONLint测试了有效的json格式。 –