Javascript AngularJS没有';t显示MySQL结果*已编辑
MySQL数据的概览视图(root.html)不显示数据。但是,打开/php/overview.php表示可以正确获取数据: 成功连接到MySQL服务器。[{“职务头衔”:“闪光”,“职务id”:“狗”},{“职务头衔”:“ad34”,“职务id”:“teeee”}] root.htmlJavascript AngularJS没有';t显示MySQL结果*已编辑,javascript,php,jquery,mysql,angularjs,Javascript,Php,Jquery,Mysql,Angularjs,MySQL数据的概览视图(root.html)不显示数据。但是,打开/php/overview.php表示可以正确获取数据: 成功连接到MySQL服务器。[{“职务头衔”:“闪光”,“职务id”:“狗”},{“职务头衔”:“ad34”,“职务id”:“teeee”}] root.html <table class="setup-table"> <tr> <td>Job title</td> <td>
<table class="setup-table">
<tr>
<td>Job title</td>
<td>Job ID</td>
</tr>
<tr data-ng-repeat="campaign in campaigns">
<td>A {{campaign.Job_title}}</td>
<td>B {{campaign.Job_id}}</td>
</tr>
</table>
overview.php
<?php
include_once('db.php');
$query = "SELECT Job_title, Job_id FROM campaign";
$result = $connect->query($query);
$data = array();
while ($row = mysqli_fetch_array($result,MYSQL_ASSOC)) {
$data[] = $row;
}
print json_encode($data);
mysql_close($connect);
?>
大多数情况下,当您获得服务器路由时,您会收到一个完整的响应对象作为响应,而不仅仅是请求的数据,因此将使此调用的代码部分更改为如下所示:
{
$http.get("php/overview.php")
.success(function(response){
console.log(response);
$scope.campaigns = response.data;
alert("It WORKED (DELETE Later)");
})
.error(function() {
$scope.campaigns = "Could not fetch data";
alert("DID NOT WORK (DELETE Later");
});
}
我们应该做到这一点。我还添加了一个console.log调用,以便您可以检查响应
注意:不推荐使用success和error。建议您使用.then()响应$http调用。重构非常小。您检查过收到的数据了吗?这是你所期望的吗?您是否在
ng视图中看到正确的模板?关于您的问题没有给出太多详细信息添加$scope.$apply()代码>?我猜数组是空的。。您可以打印$scope.campaign吗?我添加了数据和活动的控制台日志,但firebug控制台中没有显示任何内容。所以我想它是空的。我将添加php以将内容写入数据库。@YaeVo查看我的答案。它应该是正确的,尽管有相反的注释。OP显示了生成json的php代码。没有具有数据
属性的对象。它只是一个对象数组。不要猜测…阅读OP代码我不做PHP,但是当我访问一个也只写JSON的.NET站点时,我得到了一个完整的响应对象。我不知道为什么这里不是这样。谢谢你的讲座。难怪如此多的开发者觉得这个网站令人厌烦,并且害怕提问和回答问题。根据angular doc,OP应该接收一个带有数据、状态、标题、状态文本和配置成员的响应对象。angular$http函数响应始终将请求返回的数据存储在response.data
中。如果对象有数据属性,它将被response.data.data
访问。这是控制台日志:controllers.js:31 object{data:“Verbindung zum MySQL Server erfolgreich aufgebaut.没有这样的文件或目录”,状态:200,配置:object,状态文本:“OK”}我的Deutsch非常生锈,但对我来说,这似乎是某种错误,即使你的状态是200。您可能只想在浏览器中导航到URL,然后查看得到的内容。无论如何,您的客户端代码现在是正确的。如果您需要进一步的帮助,我建议您深入研究服务器端并提出一个新的问题。
{
$http.get("php/overview.php")
.success(function(response){
console.log(response);
$scope.campaigns = response.data;
alert("It WORKED (DELETE Later)");
})
.error(function() {
$scope.campaigns = "Could not fetch data";
alert("DID NOT WORK (DELETE Later");
});
}