我有一个简单的问题,我似乎无法解决。我试图返回一组简单的数据从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');