我想知道您是否可以帮助我,我正在尝试从 php 中的表中提取数据(状态和值),将其保存到数组(并将其编码为 JSON),然后使用编码的 JSON 数组添加我正在尝试创建的饼图中的行。谁能指导我如何成功地做到这一点?我想我遗漏了几条关键线。
任何帮助表示赞赏。
提前致谢!
<?
// Connection to the database
$db = mysql_connect("localhost", "root", "elves") or die("Could not connect");
mysql_select_db("wlp_FIX001");
// Selecting the data
$s = "SELECT * FROM `lu_opportunity_status`";
$m = mysql_query($s) or die("$s dies - " . mysql_error());
while ($row = mysql_fetch_array($m)) {
$oppStatusName = $row['status'];
$s1 = "SELECT `lu_opportunity_status`.`status`, SUM(`opportunities`.`value`) AS `totalvalue` FROM `opportunities` LEFT JOIN `lu_opportunity_status` ON `opportunities`.`status` = `lu_opportunity_status`.`id` WHERE `lu_opportunity_status`.`status` = '$oppStatusName'";
$m1 = mysql_query($s1) or die("$s1 dies - " . mysql_error());
$oppStageTotals = array();
while ($row1 = mysql_fetch_array($m1)) {
$oppStatus = $row1['status'];
$oppValue = $row1['totalvalue'];
$oppStageTotals[] = array("status" => $oppStatus, "oppValue" => $oppValue);
}
//print_r($oppStageTotals);
$encoded_oppStageTotals = json_encode($oppStageTotals);
//echo $encoded_oppStageTotals;
}
?>
<html>
<head>
<TITLE>Form Scaff Charts</TITLE>
<!--<link rel="stylesheet" media="print" title="Printer-Friendly Style"
type="text/css" href="print.css">-->
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
var encoded_oppStageTotals = <?php echo json_encode($encoded_oppStageTotals); ?>
var oppStageTotals = new Array();
oppStageTotals = encoded_oppStageTotals;
// Load the Visualization API and the piechart package.
google.load("visualization", "1", {packages:["corechart"]});
google.load('visualization', '1.0', {'packages':['corechart']});
google.load('visualization', '1', {packages:['table']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
// Callback that creates and populates a data table,
// instantiates the pie chart, passes in the data and
// draws it.
function drawChart() {
// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Status');
data.addColumn('number', 'Value');
var len = jsonarray.length;
data.addRows(len);
// Need some stuff here to do it??
// Set chart options
var options = {'title':'Opportunities',
'width':300,
'height':300};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
function selectHandler() {
var selectedItem = chart.getSelection()[0];
var selectedItem2 = chart.getSelection()[1];
if (selectedItem) {
var topping = data.getValue(selectedItem.row, 0);
var amount = data.getValue(selectedItem.row, 1);
}
}
google.visualization.events.addListener(chart, 'select', selectHandler);
chart.draw(data, options);
}
</script>
<style>
body {
margin:0px;
padding:0px;
}
.container {
width: 210mm;
height: 297mm;
margin-left: auto;
margin-right: auto;
}
@media print
{
.container {
position: absolute;
top: 0px;
bottom: 0px;
left: 0px;
right: 0px;
}
iframe {
/* float:left;
display: block;*/
}
}
</style>
</head>
<body>
<div class="container">
<div id="chart_div" class=span4></div>
</div>
</body>
</html>