1

私はDataTablesを使用していますが、テーブルにデータを入力するには、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" ]
}

私は何百もの異なる方法を試しましたが、上記のようなものに到達できないため、DataTablesはそれを受け入れません。

これは私の最近の試みの1つです。

$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 ...)も、「[]]」のものも必要ありません。私はあちこちで同様の投稿を見ましたが、これを助けるものは何も見つかりませんでした。どうすればそれらを取り除くことができますか?ご協力いただきありがとうございます。

4

1 に答える 1

2

これを使って

$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

于 2013-03-26T12:14:26.570 に答える