2012-07-20 135 views
0

我正在使用名为DataTables的jquery插件,它需要我返回一个json字符串才能呈现表。PHP + 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格式不正确以另一种方式可能会造成解析错误?

谢谢

回答

4

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

+0

是的,我认为是的。结果是一行数组。 – 2012-07-20 12:34:26