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

时间:2016-03-06 14:53:33

标签: php html angularjs controller

希望你很好,

我想询问是否可以使用$ 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部分中的任何选定数据时,没有任何内容显示并保持空白。

任何想法?!

1 个答案:

答案 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>