0

IE 8で直面している問題が原因で、Highchartsを使用して一部のグラフがレンダリングされないため、データベースからデータを抽出するために以下のコードを使用しているという問題が発生します。

PHPコードは以下を返します

series: [{
            type: 'pie',


            data: [

            ['FirstRowItem',21],['SecondRowItem',10],['ThirdRowItem',6],                ]
        }]

およびDBリクエストは次のとおりです

series: [{
            type: 'pie',

            data: [ <?php

while($row = mysql_fetch_array($getitemscount)){
echo "['";
echo $row['items'];
echo "',";
echo $row['item countt'];
echo "],";`}

?>
            ]
        }]

IE9、Chrome、Firefoxで正常に動作します。しかし、IE8では、 ['ThirdRowItem'、6]の終わりまでに、未定義の変数と表示されているため、機能しません。

最後のコンマを削除するだけのコード(怠惰な方法)またはそれなしでDBデータを取得する他の方法がある場合、私は何を考えていましたか?

前もって感謝します。

*********** 編集 ****************

ここではるかに良い方法

4

2 に答える 2

3

手動で連結しないでくださいjson_encode()。代わりに次を使用してください。

$data = array();
while($row = mysql_fetch_array($GetCallDriversResultPie)) {
    $data[] = array($row['CallDriver'], (int)$row['Calls count']);
}

echo json_encode($data);
于 2013-03-10T21:22:07.857 に答える
0

1 つの方法は、データを変数に追加し、MySQL からの結果セットを処理した後、substr() を使用して目的の長さ (-1 文字、最後のコンマ) にトリミングすることです。

series: [{
            type: 'pie',

            data: [ <?php

$result = '';
while($row = mysql_fetch_array($GetCallDriversResultPie))`{
    $results .= "['" . $row['CallDriver'] . "'," . $row['Calls count'] . "]," ;
}

echo ( substr( $results, 0, -1 ) ); // echo all of $results, except the last character

?>
            ]
        }]
于 2013-03-10T21:22:16.407 に答える