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)。