我正在使用数据表,它需要JSON对象的特定格式,以便填充表。
应该是这样的:
{"aaData": [
[ "Trident", "Internet Explorer 5.1", "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.0", "Win 98+", 6, "A" ],
[ "Trident", "Internet Explorer 7.0", "Win XP SP2+", 7, "A" ]
}
我已经尝试了数百种不同的方法,但无法得到看起来像上面的东西,所以datatable不接受它。
这是我最近的一次尝试:
$aaData["aaData"] = array(array());
$i=0;
while($r= mysql_fetch_assoc($sql)){
$aaData[$i][] = $r["data1"];
$aaData[$i][] = $r["data2"] ;
$aaData[$i][] = $r["data3"] ;
$aaData[$i][] = $r["data4"] ;
$aaData[$i][] = $r["data5"] ;
$i++;
}
$aaData=json_encode($aaData);
echo $aaData;
这给了我一个来自服务器的JSON响应(由Firebug验证),看起来像这样:
{"aaData":[
[]],
"0":["data1","data2","data3","data4","data5"],
"1":["data11","data21","data31","data41","data51"],
etc.....]
}
所以,我不需要键(0,1…)也不需要"[]]"之类的东西。我确实在这里和其他地方看到了类似的帖子,但没有找到任何能帮助我解决这个问题的东西。我怎样才能摆脱它们呢?谢谢你的帮助。
使用
$aaData["aaData"] = array();
//$i=0;
while($r= mysql_fetch_assoc($sql)){
$arr= array();
$arr[] = $r["data1"];
$arr[] = $r["data2"] ;
$arr[] = $r["data3"] ;
$arr[] = $r["data4"] ;
$arr[] = $r["data5"] ;
array_push($aaData["aaData"],$arr);
//$i++;
}
$aaData=json_encode($aaData);
echo $aaData;
工作示例http://codepad.viper-7.com/gk2DO3