angularjs+php+sql+json = empty array



使用AngularJS通过以JSON交付的PHP从SQL获取数据。 当我直接点击PHP页面时,我看到的json结果很漂亮,但是通过我的Angular HTTP调用,我得到的只是一个空数组。

SQL.php:

header("Content-Type: application/json; charset=UTF-8");
$conn = new mysqli("localhost", "****", "****", "****");
if(!$conn){
    die("Connection failed: " .mysqli_connect_error());
}
if($_GET['q'] == 'classes') {
    $query = "SELECT * FROM `assignments`";
}
if($_GET['q'] == 'allContacts') {
    $query = "SELECT * FROM `contacts`";
}
$data = array();
$result = mysqli_query($conn, $query);
if(mysqli_num_rows($result) > 0){
    while($row = mysqli_fetch_assoc($result)){
        $data[] = $row;
    }
} else {
    echo "0 results";
}
$json = json_encode($data);
echo $json;

角度 JS:

$scope.classes = []
$http.get("sql.php?q=classes")
.then(function(res) {
  $scope.classes = res
}, function(err) {
  console.log(err)
})
console.log($scope.classes)

这是这里发生的事情,$http.get 在 angular 中是异步的(搜索含义(,所以当你调用它时,它不会等待响应,而是它会前进到你的代码上的下一个指令是控制台.log,所以这里发生的事情是当你调用控制台时.log它也在调用你的 $scope.类它还没有收到响应。 要进一步查看它,请尝试将超时添加到您的控制台.log但这不是正确的方法,您需要了解 JavaScript 中的异步调用

最新更新