使用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 中的异步调用