2016-02-08 2 views
0

Я потратил часы, пытаясь понять это и просматривать в Интернете, но я должен делать что-то неправильно. Каждый раз, когда я загружаю страницу, она просто пустая. Я пытаюсь загрузить базу данных из mysqli в angularjs. Код скопирован точно из упражнений W3, поэтому я понятия не имею, где проблема.Не могу понять, почему AngularJS не читает JSON из PHP

dbaseread.php находится в той же папке, что и html.

PHP:

$query = "SELECT * FROM members"; 
    $result = $mysqli->query($query); 
    $r = array(); 
    if($result->num_rows>0){ 
    while($row = $result->fetch_assoc()){ 
    $r[] = $row; 
    } 
    } 


    $res = json_encode($r); 

    header('Content-Type: application/json'); 

    echo $res; 

HTML

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

<div ng-app="myApp" ng-controller="customersCtrl"> 

<ul> 
    <li ng-repeat="x in myData"> 
    {{ x.name }} 
    </li> 
</ul> 

</div> 

<script> 
var app = angular.module('myApp', []); 
app.controller('customersCtrl', function($scope, $http) { 
    $http.get("dbaseread.php").then(function (response) { 
     $scope.myData = response.data.records; 
    }); 
}); 
</script> 

</body> 
</html> 
+0

попробуйте декодировать ответ, прежде чем использовать его ... я знаю, что звучит странно, просто попробуйте ... json_decode ($ response, true); Я работаю с json-файлами в последние несколько дней, когда мой JS отказывается читать его, если я не сначала его декодирую, а используйте истинный параметр – TheHidden

+3

try '$ scope.myData = response.data'. Не похоже на какое-либо свойство 'records' в php. Внутри 'then' может помещаться' console.log (response.data) ', а затем искать в консоли браузера то, что на самом деле возвращается – charlietfl

+0

@silverpenguin, который предназначен для декодирования, а не для кодирования – charlietfl

ответ

0

попробовать $scope.myData = response.data. Не похоже на records Недвижимость в php. Внутри then может поставить console.log(response.data) затем посмотреть в консоли браузера на то, что на самом деле вернулся

- charlietfl

Там действительно было не какое-то свойство «записей», поэтому удаление его исправили проблему.