我想询问是否可以使用$ http.get从同一页面获取数据, 深入细节:
我有一个名为(MY_FILE.php)的php文件,其中包含:PHP,HTML和SCRIPT代码, 在PHP部分我执行了sql select statment,并且我试图在脚本中获取所选数据以在html部分中使用它,这可能吗?
php部分:
<?php
$connect = mysqli_connect("localhost", "root", "", "database");
$result = mysqli_query($connect, "select * from table");
$data = array();
while ($row = mysqli_fetch_array($result)) {
$data[] = $row;
}
print json_encode($data);
?>
脚本部分:
fetch.controller('dbCtrl', ['$scope', '$http', function ($scope, $http) {
$http.get("MY_FILE.php")
.success(function(data){
$scope.data = data;
})
.error(function() {
$scope.data = "error in fetching data";
});
}]);
当我使用html部分中的任何选定数据时,没有任何内容显示并保持空白。
任何想法?!
答案 0 :(得分:1)
代码是正确的,但是对同一页面使用$ http.get的问题是当你使用print json_encode($data);
返回对$ http调用的响应时,而不是将调用返回到$ http,它会打印出来页面上的数据。所以它返回nothng。所以最好使用另一个页面并使用另一个页面也会更加用户友好,因为页面不会刷新以获取结果。其次,由于$ http的异步性质,程序将继续执行,并且它不会等待php代码运行并显示结果。一旦php代码完全执行,它就会显示结果。
如果您希望所有内容都在同一页面上发生,您只需使用
即可<?php
if(isset($_POST['varname']))
{}
?> and
<html>
<form action="" method="POST" >
</form></html>