您可以使用AJAX請求從服務器獲取數據。以下是使用PHP構建數據的示例。雖然你需要根據地區做出條件。
onRegionClick: function(element, code, region) {
$.ajax('/get_chart_data.php', {
data: {region: region},
dataType: 'json',
success: function(response) {
new Chart(pie).Doughnut(response.pieData, pieOptions);
}
});
get_chart_data.php
<?php
// Check which region was passed
//$_REQUEST['region']
// Based on region build chart data
$chartData = new stdClass();
$pieData = array();
$pie1= new stdClass();
$pie1->value = 20;
$pie1->color = '#878BB6';
$pieData[] = $pie1;
$pie2= new stdClass();
$pie2->value = 40;
$pie2->color = '#4ACAB4';
$pieData[] = $pie2;
$chartData->pieData = $pieData;
echo json_encode($chartData);
?>
一個開關基於區域
<?php
$region1Pie = array(20, '#878BB6', 40, '#4ACAB4', 10, '#FF8153', 30, '#FFEA88');
$region2Pie = array(15, '#878BB6', 20, '#4ACAB4', 25, '#FF8153', 30, '#FFEA88');
$region3Pie = array(9, '#878BB6', 60, '#4ACAB4', 25, '#FF8153', 12, '#FFEA88');
$chartData = new stdClass();
$pieData = array();
// Swtich based on region
switch($_REQUEST['region']) {
case 1:
$pieArray = $region1Pie;
break;
case 2:
$pieArray = $region2Pie;
break;
case 3:
$pieArray = $region3Pie;
break;
}
for($i=0; $i<count($pieArray); $i+=2) {
$pie= new stdClass();
$pie->value = $pieArray[$i];
$pie->color = $pieArray[$i+1];
$pieData[] = $pie;
}
$chartData->pieData = $pieData;
echo json_encode($chartData);
?>
現在我只要學會AJAX哈哈。非常感謝小費,我會確保給這個鏡頭。 – 2014-08-28 03:17:24
你一定已經看過演示來獲取甜甜圈(pieData,pieOptions);代碼,謝謝!如果我只是想在一張甜甜圈圖表上測試,我真的甚至需要onRegionClick代碼的最後3行(您設置畫布和ctx變量並調用新圖表)嗎? – 2014-08-28 15:01:11
根據你的演示,我不認爲你需要這些。餅圖在上面初始化爲 var pie = document.getElementById(「pie」)。getContext(「2d」); 所以你只需要以下內容。新圖(餅).Doughnut(response.pieData,pieOptions);你的演示現在就是這樣工作的,所以沒有這些線就沒問題。 – 2014-08-28 15:29:05