我正在尝试使用ng-repeat和来自mysql数据库的数据填充div标签。我想使用ng-repeat,因为我想稍后应用过滤器。 我的问题是组合angular和sql。
我希望html做这样的事情
<div>
<input type="text" ng-model="filterText" class="search" placeholder="Filter ...">
<p ng-repeat="data in datalist | filter : filterText">{{data}}</p>
</div>
我的控制器中有以下功能:
getData();
function getData() {
$http.post("/server/get_data.php").success(function(data){
$scope.datalist = data; // the above mentioned datalist
});
};
我接触了get_data.php中的sql检索,如下所示,但它给了我输出我不明白:
<?php
require_once 'db_connection.php';
$query = "SELECT * FROM datatable";
$result = mysqli_query($connection, $query);
if (!$result) {
die("Database query failed.");
}
echo $json_response = json_encode($result);
?>
回声给我以下内容:{"current_field":null,"field_count":null,"lengths":null,"num_rows":null,"type":null}
。因此,ng-repeat不会运行。
让我们说我的数据库有“id”和“name”列。如何获得正确的查询/值以使ng-repeat过滤器起作用?
或者,这是非常相似的,但我不明白如何使if(isset($_GET[ ... ]))
起作用。对于这种方法,我需要输入什么? php之前的步骤基本相同或是?
http://angularcode.com/simple-task-manager-application-using-angularjs-php-mysql/
$query="INSERT INTO tasks(task,status,created_at) VALUES ('$task', '$status', '$created')";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
$result = $mysqli->affected_rows;
echo $json_response = json_encode($result);
}
?>
答案 0 :(得分:1)
你的{{data}}
实际上是一个对象(你的sql表中的一行),你可以使用
<p ng-repeat="data in datalist | filter : filterText">{{data.myfield}}</p>
并将myfield
替换为您要显示的字段。
还有一件事,你实际上并没有从数据库中获取$result
,请参阅
mysqli_fetch_array