2017-05-02 86 views
1

我是web開發新手,因此對於其他初學者來說,這可能是一個簡單的問題,希望對其他初學者有用。如何將json從PHP傳遞到AngularJS

我使用php腳本從mysql數據庫中選擇一些數據(帳戶)。我希望將選定的數據傳遞給角度變量,以便我可以使用ngRepeat創建輸出。我需要在我的PHP和/或Angular文件中更改哪些內容?

現在,JSON的構建問題是,我不回到我稱爲PHP的HTML。我如何管理?

謝謝您的幫助 克里斯

HTML

<form action="./backend/display_accounts.php" method="post"> 
    <input class="btn btn-default" type="submit" value="display accounts"/> 
</form> 
<ul> 
    <li ng-repeat="account in accounts"> 
    {{ account.account_name }} 
    </li> 
</ul> 

PHP

<?php 
include 'connect.php'; 
$sql = //myQuery// 
$result = $conn->query($sql); 
//return ($result); 
if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 
$json_arry = json_encode($row); 
echo $json_array;} 
} 
else { 
     echo "0 results"; 
} 
$conn->close(); 
?> 

AngularJS

var app = angular.module("myApp", ['ngRoute']) 
app.controller('accountsController', function($scope, $http) { 
$scope.displayData = function(){ 
$http.get("./backend/display_accounts.php") 
.then(function (response) {$scope.accounts = response.data.records;}); 
}; 
}); 
+0

其中顯示HTML你是否面臨這個問題?你是否從任何地方得到任何類型的錯誤? – mi6crazyheart

+0

問題是,我在頁面上看不到結果。但是我認爲這可能在使用$ http.get的html之前。我怎樣才能找到清楚的問題? – Krs81

+0

現在,構建JSON的問題是,我不回到我稱爲PHP的HTML。我如何管理? – Krs81

回答

1

既然你已經獲得的DA ta變成一個變量(賬戶)。你可以在html中使用下面的代碼來查看結果

<!DOCTYPE html> 
<html> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
<body> 

<div ng-app="myApp"> 
    <p>Looping with ng-repeat:</p> 
    <ul> 
    <li ng-repeat="account in accounts"> 
     {{ account }} 
    </li> 
    </ul> 
</div> 

</body> 
</html> 
+0

請問我是否需要澄清。我可以理解你是Angular的新手:-) –

+0

很好的答案,但我認爲你應該爲他解釋清楚。如果您使用{{帳戶}},您將獲得json文件 – Akashii

+0

@ThanhTùng:感謝您的考慮。我有你的觀點:-) –

0

我認爲你應該改變一下。在PHP

$sql = //myQuery// 
$row = array(); //here is change 
$result = $conn->query($sql); 
return ($result); 
if ($result->num_rows > 0) { 
while($r= $result->fetch_assoc()) { 
$row[]= $r; //here is change 
$json_arry = json_encode($row); 
echo $json_array; 
} 

而且在你的角度

$http.get("./backend/display_accounts.php") 
.then(function (response) {$scope.accounts = response.data;}); //you dont need record in here if json file of you dont have the key records 
}; 

如果JSON文件應該像你需要記錄,但如果沒有。你不需要它。

{"records": 
[ 
{// your data}]} 

如果您JSON文件中有A,B,C或一些東西,而不是記錄,你應該寫這樣的

$scope.accounts = response.data.a; //a b c or some thing for ex I use a 

而且你可以像

<ul ng-repeat= account in accounts> 
<account. ...> 
</ul>