PHP+json编码+数据表


PHP + json encode + Datatables

我使用的是一个名为DataTables的jquery插件,它要求我返回一个json字符串来渲染表。

目前,输出的json看起来是这样的(参见aaData数组):

{"sEcho":0,"aaData":[[{"ID":"1","idPatient":"122342","idFacility":"3","idTreatment":"3"}]]}

我想知道{}大括号是否真的应该在aaData数组中。事实上,我认为大括号实际上是导致JSON解析错误的原因。

下面列出了生成此代码的实际代码。(core->dbh是PDO句柄)

<?php
require_once('core/Core.php');
$core = Core::get_instance();
        $sql = 'SELECT ID, idPatient, idFacility, idTreatment
                FROM Pathology WHERE idPatient = 122342';
        $stmt = $core->dbh->prepare($sql);
        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        // bind parameters
        $stmt->execute();
        // prepare output for DataTables
        $data = array("sEcho" =>intval($_GET['sEcho']),
                      "aaData" =>array()
        );
        while($result = $stmt->fetchAll()) {
                $data['aaData'][] = $result;
        }
            echo json_encode($data);

?>

有人能告诉我如何删除大括号吗?或者如果JSON的格式不正确,可能会导致解析错误?

感谢

JSON很好。您通过json_encode用PHP对其进行编码,这不会是问题所在。我的猜测是,通过这样做$data['aaData'][] = $result;,你嵌套了两次(见双括号)结果,插件失败了。试试这个:$data['aaData'] = $result;