2016-03-06 38 views
0

希望你很好,很好,

我想询问是否可以在同一页面获取使用$ 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

申报$ scope.data = {};在$ http.get –

+0

之前的控制器中谢谢你,但没有任何改变。 – MSMC

+0

您能否注销您从请求中获得的数据以确认您确实收到了某些东西?设置后注销'$ scope.data'。 –

回答

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> 
相关问题