我想使用AngularJs在我的网站中显示数据(json(。 这是我所做的:
在 phpmyAdmin 中创建数据库。
创建一个包含 2 行、主题和正文的表格。我应该创建一个 id 吗?
在使用PHP和angular之后,我得到了这样的JSON:
[{
"0":"Soheil","subject":"Soheil",
"1":"Sadeghbayan","body":"Sadeghbayan"}
,{"0":"","subject":"","1":"","body":""}
,{"0":"","subject":"","1":"","body":""}
,{"0":"dasdasd","subject":"dasdasd","1":"qe","body":"qe"}
,{"0":"Hello","subject":"Hello","1":"This is chandler !","body":"This is chandler !"}
,{"0":"","subject":"","1":"","body":""},
{"0":"Something new in website","subject":"Something new in website","1":"oh Awsome !","body":"oh Awsome !"
}]
我认为这是无效的 JSON,因为当我用我编写的自定义 JSON 替换它时,它可以工作.
Json 有效
{
"fruits": [
{
"id": "1",
"name": "Apple"
},
{
"id": "2",
"name": "Orange"
}
]
}
AngularJS
var fruitsApp = angular.module('fruitsApp', []);
fruitsApp.factory('fruitsFactory', function($http) {
return {
getFruitsAsync: function(callback) {
$http.get('fruits.json').success(callback);
}
};
});
fruitsApp.controller('fruitsController', function($scope, fruitsFactory) {
fruitsFactory.getFruitsAsync(function(results) {
console.log('fruitsController async returned value');
$scope.fruits = results.fruits;
});
});
目录
<ul>
<li ng-repeat="fruit in fruits">
{{fruit.subject}} is {{fruit.body}}
</li>
</ul>
.php
include('config.php');
$data = json_decode(file_get_contents("php://input"));
$subject = mysql_real_escape_string($data->subject);
$body = mysql_real_escape_string($data->body);
mysql_select_db("angular") or die(mysql_error());
mysql_query("INSERT INTO newstory (subject,body) VALUES ('$subject', '$body')");
Print "Your information has been successfully added to the database.";
$query = "SELECT * FROM newstory";
$result = mysql_query($query);
$arr = array();
while ($row = mysql_fetch_array($result)) {
$subject = $row['subject'];
$body = $row['body'];
$arr[] = $row;
}
echo json_encode($arr);
知道吗?提前感谢
您的 JSON 是有效的。有关 JSON 的信息,请参阅此处,并参阅此处以检查/验证 JSON 对象。
从 $http.get/数据库数据返回的数据没有 fruits
属性,您希望在设置$scope.fruits
时这样做(以下代码片段取自您的代码(:
$scope.fruits = results.fruits;
$http.get 调用返回的数据的结构与示例数据的格式不同。
这是您的 $http.get/数据库数据(为了简洁起见,我缩短了它(:
[
{
"0": "Soheil",
"1": "Sadeghbayan",
"subject": "Soheil",
"body": "Sadeghbayan"
},
{
"0": "Hello",
"1": "This is chandler !",
"subject": "Hello",
"body": "This is chandler !"
},
{
"0": "",
"1": "",
"subject": "",
"body": ""
}
]
这是您的示例/模拟数据:
{
"fruits": [
{
"id": "1",
"name": "Apple"
},
{
"id": "2",
"name": "Orange"
}
]
}
前者是带有键的对象数组:0
、1
、subject
和body
。后者是一个带有键的对象:fruits
.
它们都是具有不同对象结构的有效 JSON 对象。但是,您希望有一个没有属性的fruits
属性。此外,您的 HTML/UI 可能期望数据格式类似于模拟数据中的格式。所以也要检查一下。