2015-09-10 115 views
0

首先,在此先感謝任何幫助。我一直在努力研究如何將角度圖表對象掛接到mysql數據庫。我目前有圖表處理靜態數據。我在我的項目中的通用PHP文件看起來是這樣的:Angular-chart js和連接到MySQL後端

// Create the connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Check the connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
//echo "Connected successfully"; 

//the sql to run 
$sql = "SELECT * FROM Test2"; 
//run it 
$result = $conn->query($sql); 

//check for results 
if ($result->num_rows > 0) { 
//create an array 
$dataarray[] = array(); 

//loop em 
while($row =mysqli_fetch_assoc($result)) { 
    $dataarray[] = $row; 
} 
//make em json 
echo json_encode($dataarray); 
} 
//} else { 
// echo "0 results"; 
//} 

//close out our connection 
$conn->close(); 
?> 

這工作得很好。這個表格返回一些包含名稱和值的行。沒有什麼,但在這個時候測試數據。

在我的HTML/JavaScript的,我有以下幾點:

<script> 
     angular.module("ChartApp", ["chart.js"]).controller("PieCtrl", function ($scope, $http) { 
      $http.get('./GetTestData.php'). 
      success(function(data) { 
       $scope.records = data; 

      }); 

      $scope.labels = ["Download Sales", "In-Store Sales", "Mail-Order Sales"]; 
      $scope.data = [300, 500, 100]; 
     }); 
    </script> 

我真的不知道在哪裏可以從這裏走。任何幫助,將不勝感激。

+0

它不是一個餅圖,但你可以採取的想法從這裏http://plnkr.co/edit/SYgfQTTEC2XD1OA0ZReV?p=preview –

+0

感謝您的幫助。不幸的是,這並沒有完成。該示例也使用靜態數據集。 – Pikuchan

回答

0

永遠的,但我終於明白了。我不得不採取JSON對象並將這些值轉換爲單獨的數組。下面是相關代碼:

angular.module("ChartApp", ["chart.js"]).controller("PieCtrl", function ($scope, $http) { 
$http.get('./GetTestData.php'). 
success(function(data) { 
    var names = []; 

    for(var i = 0; i < data.length; i++) { 
     var obj = data[i]; 

     if(obj.Name != undefined) { 
      names.push(obj.Name); 
     } 
    } 

    var values = []; 
    for(var i = 0; i < data.length; i++) { 
     var obj = data[i]; 

     if(obj.Name != undefined) { 
      values.push(obj.Value); 
     } 
    } 
    //$scope.records = data; 
    $scope.labels = names; 
    $scope.data = values; 
    }); 

     }); 
    </script> 
0

我與代碼得到如下錯誤:

Uncaught TypeError: Cannot read property 'draw' of undefined

所以我不得不插入[]$scope.data,使之工作。

$scope.labels = names; 
$scope.data = [values]; 
+0

這並不回答這個問題 – prasun