Php 没有从ajax调用返回到jquery数据表的数据
这是我第一次尝试使用Php 没有从ajax调用返回到jquery数据表的数据,php,jquery,ajax,datatables,Php,Jquery,Ajax,Datatables,这是我第一次尝试使用datatables。我想调用ajax函数从数据库(MariaDB)返回数据,并填充php文件中现有表的行和单元格 关于数据字段的代码简化版本如下: $('#tbl_resultados').dataTable( { "bProcessing": true, "sAjaxSource": "/apls/indicadores/indic_acess.php", "sAjaxDataProp": "data", "
datatables
。我想调用ajax
函数从数据库(MariaDB
)返回数据,并填充php
文件中现有表的行和单元格
关于数据字段的代码简化版本如下:
$('#tbl_resultados').dataTable( {
"bProcessing": true,
"sAjaxSource": "/apls/indicadores/indic_acess.php",
"sAjaxDataProp": "data",
"fnServerData": function ( sSource, aoData, fnCallback ) {
request = $.ajax({
"dataType": 'json',
"type": "GET",
"url": sSource,
"data":{
"fn": "lines",
"indic_per": indic_per,
},
"success": fnCallback
});
},
"aoColumns": [
{ "mDataProp": "id"},
{ "mDataProp": "per"},
],
} );
我尝试过使用和不使用“bServerSide”:true,
,但无法获取要在表中显示的数据Firebug
返回TypeError:aData未定义
按照中所述,我在php
中构建了一个函数,它返回一个类似json
的结构
function getLines()
{
echo "{ \"aData\":[
[
\"25983\",
\"2010\"
],
[
\"90420\",
\"2011\"
]
]
}";
}
正如我所说,我没有使用datatables
的经验,不知道是使用aData
还是aaData
,或者尝试更多的方法。这里是ajax源代码的另一个示例:
上面写着:
DataTables需要一个包含数据源的数组“aaData”的对象。
以下是他们的一些ajax回报:
{ "aaData": [
["Trident","Internet Explorer 4.0","Win 95+","4","X"],
["Trident","Internet Explorer 5.0","Win 95+","5","C"],
["Trident","Internet Explorer 5.5","Win 95+","5.5","A"],
["Trident","Internet Explorer 6","Win 98+","6","A"],
["Trident","Internet Explorer 7","Win XP SP2+","7","A"],
.
.
.
["Misc","Links","Text only","-","X"],
["Misc","Lynx","Text only","-","X"],
["Misc","IE Mobile","Windows Mobile 6","-","C"],
["Misc","PSP browser","PSP","-","C"],
["Other browsers","All others","-","-","U"]
] }
在我这方面,我总是使用aaData
来启动表数据。
除此之外,您还可以返回更多选项(如sEcho
,iTotalRecords
,iTotalDisplayRecords
,…)以完成渲染。Datatables.net示例不适用于MariaDB服务器(同样适用于使用不同形式root~旧密码加密的用户登录)。我不知道为什么它没有,但它没有响应任何数据(ajax)。在Windows服务器上测试
解决方案:如果您不想卸载MariaDB服务器,并迁移(导出/导入)数据,请在不同的端口上安装MySQL服务器服务/守护程序。我肯定缺少一些东西。。。我用了你的例子。在getLines
Php
函数中,执行了回显“您的答案”的操作代码>并转义引号。在firebug中,作为对http
GET
方法的响应,有:{“aaData”:[[“三叉戟”、“Internet Explorer 4.0”、“Win 95+”、“4”]、[“Trident”、“Internet Explorer 5.0”、“Win 95+”、“5”]、[“Trident”、“Internet Explorer 5.5”、“Win 95+”、“5.5”]、[“Trident”、“Internet Explorer 6”、“Win 98+”、[“Trident”,“Internet Explorer 7”、“Win XP SP2+”、“7”]}
。但仍然得到一个类型错误:aData未定义
错误。您是否尝试从示例开始(通过复制源代码),并尝试替换您需要的内容?示例与我的意图不同:“sAjaxSource”“:'../examples\u support/json\u source.txt'
而不是使用对php函数的ajax
调用。真正的解决方案:在MariaDB/MySQL connectionString上进行显式的字符集定义(例如:charset=utf8)。