javascript - mySQL 没有将数组返回到 angularJS 中

标签 javascript php mysql arrays angularjs

我正在尝试使用 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/

相关文章:

javascript - PhoneGap应用程序是像Angular Js一样的单页应用程序模型吗?

php - Zend 框架 : Meta attributes (keywords/description) from database

php - MySQL PHP mysql_real_escape_string() - 这个值不是字符串吗?

javascript - jsdom:dispatchEvent/addEventListener 似乎不起作用

javascript - AngularJS,$watch 运行两次,无法进行旧/新值比较工作

javascript - 在多个 setInterval 函数完成时执行代码

asp.net - MySQL-使用未知值插入

php - 在 laravel 5.8 的 foreach 循环中存储数据

每当子字符串长于 x 个字符时,PHP 插入 <br/>

php - 如果包含通知负载,GCM ios 将无法正常工作