我正在尝试使用 PHP 脚本检索存储在 mySQL 表中的数据。我希望这些数据作为数组返回,因为然后我在 AngularJS 应用程序中循环它并进行各种转换等。我很好地获取了数据,但它仅作为数组中的一项返回,即每一行是不作为数组的单独项返回。我的代码如下:
PHP 获取请求
<?php
require 'config.php';
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT * FROM user_details';
$stmt = $pdo->prepare( $sql );
$stmt->execute();
$result = $stmt->fetchAll( PDO::FETCH_ASSOC );
$json = json_encode( $result );
echo $json;
Database::disconnect();
?>
Angular Controller
$scope.userprofiles = [];
$http.get('php/getUserDetails.php')
.success(function(data) {
$scope.userprofiles = data;
});
我还运行了一些测试来看看问题是什么。具体来说,我查看变量是否是一个数组:
$scope.varcheck = $scope.userprofiles.constructor === Array;
这将返回 true。然后我用以下命令检查数组的长度:
$scope.numRecords = $scope.userprofiles.length;
这将返回 0。
如果有人有任何想法,这将是一个很大的帮助。
我还有一个问题,如果“/”或“'”存储在数据库中,它会抛出获取请求。我认为它会提前退出。如果有人知道这一点那就太好了!
谢谢
jack
最佳答案
$http 方法返回一个无法迭代的 promise ,因此您必须通过回调将结果附加到作用域变量:
$scope.userprofiles = [];
$http.get('php/getUserDetails.php')
.then(function(response) {
$scope.userprofiles = response.data;
});
希望对你有帮助:-)
关于javascript - mySQL 没有将数组返回到 angularJS 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210766/