通过AngularJS http GET 传递和访问参数

Pass and access parameters through AngularJS http GET

AngularJS 初学者: 我正在通过 http.get 将参数传递给 url(php 文件)。在我的 php 文件中,我有 mysql 查询,我必须在其中读取 where 子句中的那些参数。

简而言之:http://example.com/page.php?dept=some_dept&office=some_office 是我的页面,其中有我的 angular 控制器和视图部分。从这里我想得到 url string/params 并从我正在获取响应的地方传递到 angular-data.php 。但是,angular-data.php 有一个 sql 查询,我计划在其中传递 WHERE 子句中的动态值,即之前来自 angular 控制器(部门和办公室)的参数在我的视图页面上获得响应(url 上面给出的参数)

下面是我目前的代码:

page.php?dept=some_dept&office=some_office

var app = angular.module('myApp', []);
        app.controller('customersCtrl', function ($scope, $http) {
            $http({
                method: 'GET',
                url: 'angular-data.php',
                data: {
                    param1: type,
                    param2: office
                }
            }).then(function (response) {
                $scope.names = response.data.records;
            });
        });

page.php?dept=some_dept&office=some_office(继续...):

<tr ng-repeat="x in names">
    <td>
        {{$index + 1}}
    </td>
    <td>{{ x.Name}}.</td>
    <td>{{ x.Office}}</td>
</tr>

angular-data.php 我想为 WHERE 子句动态设置参数:

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$conn = new mysqli("localhost", "root", "", "local_server");
$result = $conn->query("SELECT * FROM `table` WHERE `Dept` = " . $_GET['dept'] . " AND `Office` = " . $_GET['office'] . "");
$outp = "";
while ($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {
        $outp .= ",";
    }
    $outp .= '{"Name":"' . $rs["Name"] . '",';
    $outp .= '"Office":"' . $rs["Office"] . '"}';
}
$outp = '{"records":[' . $outp . ']}';
$conn->close();
echo($outp);
var app = angular.module('myApp', []);
        app.controller('customersCtrl', function ($scope, $http) {
            $http({
                method: 'GET',
                url: 'angular-data.php',
                params: {
            param1: 1,
            param2: 2
        }
            }).then(function (response) {
                $scope.names = response.data.records;
            });
        });

查看更多详情

我不明白,如果您在发送 http 请求之前在 html 中有参数类型和办公室。例如:

然后:

data: {
    param1: $scope.type
}

在您的 SQL 查询中,您正在获取 deptoffice。 您可以按以下方式传递这些参数。

您可以使用 params : 将使用 paramSerializer 序列化并附加为 GET 参数的字符串或对象的映射。

$http({
          method: 'GET',
          url: 'angular-data.php',
          params: 'dept=some_dept, office=some_office'
    })

$http({
          method: 'GET',
          url: 'angular-data.php',
          params: {
                     dept:"some_dept",
                     office:"some_office"
                  }
    })

更多可以在这里找到$http#config