如何使用 $http.get 从同一页面获取 PHP 数据


how to use $http.get to fetch php data from the same page

希望你一切安好,

我想问是否可以使用 $http.get 从同一页面获取数据,深入细节:

我有一个名为(MY_FILE.php)的PHP文件,其中包含:PHP,HTML和SCRIPT代码,在PHP部分,我执行了sql select语句,并且我试图在脚本中获取选定的数据以在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部分中使用任何选定的数据时,什么都没有出现并保持空白。

知道吗?!

代码是正确的,但是将 $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>