Angular/Ajax/PHP无法获取数据的问题


Trouble with Angular/Ajax/PHP not getting the data

我有一个简单的问题,我似乎无法解决。我试图返回一组简单的数据从mysql数据库使用角/ajax和php。问题是HTML中没有填充任何内容。调试器中没有错误。这是我的代码。

HTML:

<?php
include("includes/header.php");
?>
<body ng-app="testapp">
  <div ng-ctrl="HomeController">
    <input type="text" ng-model="name">
    <p>{{name}}</p>
    <ul ng-repeat="user in users">
      <li>{{user.fname user.lname}}</li>
    </ul>
  </div>
  <script type="text/javascript" src="angular/testapp.js"></script>
  <script type="text/javascript" src="angular/TestController.js"></script>
</body>
<?php
  include("includes/footer.php");
?>

角/AJAX

    angular.module("testapp").controller("TestController", function($scope, $http){
      $scope.name = "";
      $http({
        method: "POST",
        url: "../includes/getUsers.php"
      }).success(function(data){
        $scope.users = data;
      });
    });

getUsers.php:

  include("connection.php");
  $query = "SELECT fname, lname FROM user"
  $rows = $db->query($query);
  $data = array();
  while ($row = $rows->fetchAll(PDO:FETCH_ASSOC)) {
    $data[] = $row;
  }

  echo json_encode($data);

试试;)

这个语句导致问题:

while ($row = $rows->fetchAll(PDO:FETCH_ASSOC)) {

这里您使用PDO类的常数FETCH_ASSOC,因此将:替换为::

while ($row = $rows->fetchAll(PDO::FETCH_ASSOC)) {

还有一件事,总是在开发中设置error_reporting(E_ALL);,以便您可以获得所有错误;

您还应该为JSON响应添加适当的标头,@venkatesh-konatham:

header('Content-Type: application/json');
echo json_encode($data);

尝试先调用php代码来验证它是否返回一些东西。

之后,尝试在$http调用中添加.error()来验证请求是否真的成功

我认为问题是绑定json数据到angularjs。你可以试着在你的php代码中添加内容类型,就像下面的标题

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