在我的javascript中,这个json运行得很好。
{
"sEcho": 1,
"iTotalRecords": 58,
"iTotalDisplayRecords": 58,
"aaData": [
["Gecko","Firefox 1.0","Win 98+ / OSX.2+","1.7","A"],
["Gecko","Firefox 1.5","Win 98+ / OSX.2+","1.8","A"],
["Gecko","Firefox 2.0","Win 98+ / OSX.2+","1.8","A"],
["Gecko","Firefox 3.0","Win 2k+ / OSX.3+","1.9","A"],
["Gecko","Camino 1.0","OSX.2+","1.8","A"],
["Gecko","Camino 1.5","OSX.3+","1.8","A"],
["Gecko","Netscape 7.2","Win 95+ / Mac OS 8.6-9.2","1.7","A"],
["Gecko","Netscape Browser 8","Win 98SE+","1.7","A"],
["Gecko","Netscape Navigator 9","Win 98+ / OSX.2+","1.8","A"],
["Gecko","Mozilla 1.0","Win 95+ / OSX.1+","1","A"]
]
}
但这当然是硬编码的,我想让aaData动态化。我正计划做一些类似$.ajax的事情,我的php有以下代码
$result = mysql_query("SELECT * FROM Persons");
$newArray = array();
while($row =mysql_fetch_array($result) ){
$newArray[] = $row;
}
echo json_encode($newArray);
来自json_endcode的数据是
[
{"0":"1","P_Id":"1","1":"zamor","LastName":"zamor","2":"credit","FirstName":"credit","3":"Giftcard","Address":"Giftcard","4":"Finance","City":"Finance"},{"0":"3","P_Id":"3","1":"zamor3","LastName":"zamor3","2":"credit","FirstName":"credit","3":"Giftcard","Address":"Giftcard","4":"Finance","City":"Finance"},{"0":"4","P_Id":"4","1":"zamor4","LastName":"zamor4","2":"credit","FirstName":"credit","3":"Giftcard","Address":"Giftcard","4":"Finance","City":"Finance"},{"0":"5","P_Id":"5","1":"zamor5","LastName":"zamor5","2":"credit","FirstName":"credit","3":"Giftcard","Address":"Giftcard","4":"Finance","City":"Finance"},{"0":"2","P_Id":"2","1":"zamor2","LastName":"zamor2","2":"credit","FirstName":"credit","3":"Giftcard","Address":"Giftcard","4":"Finance","City":"Finance"}
]
请注意,它有〔{…}〕而不是〔〔…〕〕因此,如果我用上面的这个替换我的aaData(硬编码的),它就会出错。如何使我的php代码返回aaData中的内容。感谢
因为您为列表提供了关联数组。
php > $simple = array(1,2,3,4,5);
php > $assoc = array('a'=> 1, 'b' => 2);
php > echo json_encode($simple);
[1,2,3,4,5]
php > echo json_encode($assoc);
{"a":1,"b":2}
尝试用替换
$newArray[] = array_values($row);
正如我所看到的,您正在使用datatables
您必须返回sEcho
、iTotalRecords
、iTotalDisplayRecords
和aaData
。
参考