使用angularjs获取php响应

时间:2014-10-14 06:32:31

标签: php angularjs post

我使用angularjs为我的应用程序和php从服务器获取数据... php文件获取所有需要的变量,但是当我试图使用角度来查看答案时我只得到[object Object],[object Object]等等...... 有什么想法吗?

谢谢!

Angular code:
  app.controller('FormController', ['$scope', '$http', function($scope, $http){
  $scope.submit = function() {

    var data = {
        'days': $scope.days,
        'age_18': $scope.age_18,
        'age_13_17': $scope.age_13_17,
        'age_8_12': $scope.age_8_12,
        'age_3_7': $scope.age_3_7,
        'water': true,
        'outside': true
    }

    $http.post('php/get_data.php', data)
    .success(function(data, status, headers, config) {
        alert(data);
    })

  }
 }])

Php代码:

  <?php
  header("Access-Control-Allow-Origin: *");
  header("Content-Type: application/json; charset=UTF-8");

  $conn = new mysqli("localhost", "nathan", "nathan", "nathan");

  $postdata = file_get_contents("php://input");
  $request = json_decode($postdata);

  $age_18 = $request->age_18;
  $age_13_17 = $request->age_13_17;
  $age_8_12 = $request->age_8_12;
  $age_3_7 = $request->age_3_7;
  $days = $request->days;
  $water = $request->water;
  $outside = $request->outside;

  $result = $conn->query("SELECT id, modal_name, name,('$age_18'*18_rating + '$age_13_17'*13_17_rating
            + '$age_8_12'*8_12_rating + '$age_3_7'*3_7_rating) as total
            FROM parks
            WHERE (water_park LIKE '$water' OR water_park LIKE 0)
                   and (outside_orlando LIKE '$outside' OR outside_orlando LIKE 0)
            ORDER BY total DESC");

  $outp = "[";
  while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
      if ($outp != "[") {$outp .= ",";}
      $outp .= '{"name":"'        . $rs["name"]       . '",';
      $outp .= '"modal_name":"'   . $rs["modal_name"] . '",';
      $outp .= '"id":"'           . $rs["id"]         . '"}'; 
}
$outp .="]";

$conn->close();

echo($outp);
?>

2 个答案:

答案 0 :(得分:0)

您获得的输出是一组对象。

尝试以下方法:

$http.post('php/get_data.php', data)
    .success(function(data, status, headers, config) {
        for (var j = 0; j < data.length; j++) {
            alert(data[j].name);
        }
    })

答案 1 :(得分:0)

请检查并告诉我它是否适合您:

$http.post('php/get_data.php', JSON.stringify(data))
   .success(function(data, status, headers, config) {
      alert(data);
})