2016-12-06 61 views
0

我想顯示一個使用Angular的表,但它不會顯示。有什麼不對嗎?下面的代碼。該表位於源代碼中,但不會在其中生成任何內容。我是Angular的新手。Angular SQL - 有什麼缺失?

前端

<div ng-app="musicApp" ng-controller="musicCtrl"> 

<table> 
    <tr ng-repeat="x in names"> 
    <td>{{ x.Name }}</td> 
    <td>{{ x.SongArtist }}</td> 
    <td>{{ x.SongAlbum }}</td> 
    </tr> 
</table> 

</div> 

<script> 
var app = angular.module('musicApp', []); 
app.controller('musicCtrl', function($scope, $http) { 
    $http.get("http://rhys-bennett.uk/AIDc3391265/includes/formatjson.php") 
    .then(function (response) {$scope.names = response.records;}); 
}); 
</script> 

後端PHP

<?php 

header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 


$result = $conn->query("SELECT song_name, song_artist, song_album FROM musictable"); 

$outp = ""; 
while($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
    if ($outp != "") {$outp .= ",";} 
    $outp .= '{"Name":"' . $rs["song_name"] . '",'; 
    $outp .= '"SongArtist":"' . $rs["song_artist"]  . '",'; 
    $outp .= '"SongAlbum":"'. $rs["song_album"]  . '"}'; 
} 
$outp ='{"records":['.$outp.']}'; 
$conn->close(); 

echo($outp); 
?> 
+1

Whaaat?你正在手動構建JSON字符串?這太容易出錯了。只需在PHP中創建正確的結構,然後使用'json_encode()'編碼它' – vuryss

+0

你知道有一個[json_encode()](http://php.net/manual/en/function.json-encode.php)函數你不需要手動拼湊json,對吧?另外,請檢查您的瀏覽器的網絡控制檯。您的請求是否被髮送?什麼是迴應? –

+0

直接:問題幾乎可以肯定是你手動編碼的JSON。相反,你應該簡單地把記錄放在一個數組中然後json_encode:'$ json = []; while($ rs = $ result-> fetch_array(MYSQLI_ASSOC)){$ json [] = $ rs;} echo json_encode($ json); die();' –

回答

1

你要訪問您的響應(response.data.records)的data對象:

$http.get("http://rhys-bennett.uk/AIDc3391265/includes/formatjson.php") 
.then(function (response) { 
    $scope.names = response.data.records; 
}); 
+0

這固定了它,非常感謝! – RachMcrae