我遇到了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格式。 –