0

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


?>

誰かが中括弧を削除する方法を教えてください.

ありがとう

4

1 に答える 1

4

JSONは問題ありません。json_encode を介して PHP でエンコードしていますが、これは問題になりません。私の推測では、これ$data['aaData'][] = $result;を行うと、結果が 2 回ネストされ (二重括弧を参照)、プラグインが失敗することになります。これを試して:$data['aaData'] = $result;

于 2012-07-20T12:27:28.937 に答える