javascript - 将 php 数组呈现给客户端时出现 Jquery DataTable 错误

标签 javascript php jquery datatables

我已经从 PHP 页面发送了 json_encoded 数据:

$arrayForDataTablePopulation = array();

        while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {

                $a = trim($row["IDCONF"]);
                $b = trim($row["NOME"]);
                $c = trim($row["TIPOLOGIA"]);
                $d = trim($row["STATO"]);
                $e = trim($row["AMBIENTE"]);
                $f = trim($row["AGGREGATORE"]);
                $f2 = trim($row["NOMECED"]);
                $g = trim($row["MODELLO"]);
                $h = trim($row["CONTRATTO"]);
                $i = trim($row["VALIDADAL"]);
                $l = trim($row["VALIDAAL"]);

            if ($count < $NUM){

                $arrayForDataTablePopulation[$count] = "[" .  $a . "," .  $b . "," . $c . "," . $d . "," . $e . "," . $f . "," . $f2 . "," . $g . "," . $h . "," . $i . "," . $l . " ]";
                $count++;

            } else {

                $arrayForDataTablePopulation[$count] = "[" .  $a . "," .  $b . "," . $c . "," . $d . "," . $e . "," . $f . "," . $f2 . "," . $g . "," . $h . "," . $i . "," . $l . " ]";

            }

        }

        echo  json_encode($arrayForDataTablePopulation);

} else {

    echo "No data Received. Dimensione array: " . $receivedArrayFormSize;

}

我不知道为什么我的输出渲染不好:

enter image description here

我想我对来自服务器的数组进行了错误的编码。 Ajax 端是:

$.ajax({

                url: "asset_GestAsset.php",
                type: "POST",
                data: { "fieldValue" : JSON.stringify(arrForm) },
                success: function(data) {

                    var tableData = JSON.parse(data);

                    console.log(" Converti in stringhe: " + data.toString() + " !!! Everything ok");

                    $('#OUTCOME_RESEARCH_TABLE').DataTable({
                         "aaData":tableData,
                         "deferLoading": 57,
                         "deferRender": true,
                         "scrollY": 150,
                         "iDisplayLength": 100,
                         "scrollX": true,
                         "bRetrieve": true,
                         "bDestroy": true,
                         "ordering": false,
                         "info":     true,
                         "sDom":     'ltipr',
                         "bDestroy": true

                 });

etc...

问题是我对所有这些 Array/JSON 的东西感到困惑 我想我现在脑子里有很多困惑 xD 有人可以帮我找到解决这个问题的方法吗? 是PHP端错误还是AJAX中的代码?

我想做的是修改服务器数组,发送回客户端并正确呈现 DataTable。

最佳答案

PHP

您应该使用下面的代码来填充数组:

$arrayForDataTablePopulation[$count] = array($a, $b, $c, $d, $e, $f, $f2, $g, $h, $i, $l);

要打印 JSON,请使用以下代码:

header('Content-type: application/json');
echo json_encode($arrayForDataTablePopulation);

JS

success 处理程序中使用下面的代码:

$('#OUTCOME_RESEARCH_TABLE').DataTable({
     "dom": 'ltipr',
     "data": data,
     "pageLength": 100,
     "scrollY": 150,
     "scrollX": true,
     "ordering": false
});

关于javascript - 将 php 数组呈现给客户端时出现 Jquery DataTable 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53499468/

相关文章:

javascript - 为什么选择器 ":button"不适用于点击事件?

javascript - 更改特定实例的鼠标按钮的默认行为

php - 我如何在 php 中创建这两个数组?

php - 消除表数据之间的空间

c# - 调用 mvc 异步方法的 ajax 调用永远不会返回

jquery - Bootstrap Carousel 只加载一张图片

javascript - 根据数组的长度为 FormData 中的 .append 创建一个函数。

JavaScript for ... of 循环

php - Laravel 5.4 多重身份验证 - Auth::guard()->user() 空

javascript - 使用 javascript 在 html 中添加动态行