Google chars を使用して、データベースからのデータで円グラフと棒グラフを描画しています。PHPとJavaScriptを使用しています。
次のコードがあります。
// Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {'packages':['corechart'], callback: function(){
// check what chart to draw (pie or bar chart)
if(tipoghs[0] == 'PICH')
{
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Ventas');
data.addColumn('number', titles[0]);
for(var i = 0;i < size;i++)
{
data.addRows([[dfilas[i], parseFloat(dcolumnas[i])]]);
}
// Set chart options
var options =
{
'title' : 'Cantidad Total de Entradas',
'width' : 400,
'height': 300,
backgroundColor: 'transparent',
chartArea:
{
left: "3%",
top: "10%",
height: "100%",
width: "70%"
}
};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('ficContainer'));
chart.draw(data, options);
}
// check what chart to draw (pie or bar chart)
else if(tipoghs[0] == 'COCH')
{
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Ventas');
data.addColumn('number', titles[0]);
for(var i = 0;i < size;i++)
{
data.addRows([[dfilas[i], parseFloat(dcolumnas[i])]]);
}
// Set chart options
var options =
{
title: titles[0],
hAxis:
{
viewWindow:
{
min: [7, 30],
max: [17, 30]
}
},
vAxist:
{
title: "Meses"
}
};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.ColumnChart(document.getElementById('ficContainer'));
chart.draw(data, options);
}
}
サーバーからデータを取得するために AJAX 呼び出しを行っています。データベースから取得されるデータ ポイントの 1 つは、円グラフまたは棒グラフを描画する場合です (条件は JavaScript コードにあります)。
何らかの理由で、IE 9 で Web サイトを開き、DB のデータ ポイントを円グラフに設定すると、エラーが発生します: Row given with size different than 0. DB では円グラフなので、 IF 条件を通過しています。Google Chrome で開くと動作します (エラー メッセージは表示されません)。
DBでグラフを棒グラフに設定すると、IE 9で動作します。棒グラフの場合は、以下のjavascriptコードでELSEを通過します。
IF (円グラフ) を通過するときに、IE 9 でエラー メッセージが表示される理由を知っている人はいますか?