Javascript 如何';点击';使用angular.js$http服务的PHP后端API中的特定函数?
我想知道是否可以用$http服务点击特定的函数(只是函数,而不是孔文件)?我的$http服务如下所示:Javascript 如何';点击';使用angular.js$http服务的PHP后端API中的特定函数?,javascript,php,json,angularjs,api,Javascript,Php,Json,Angularjs,Api,我想知道是否可以用$http服务点击特定的函数(只是函数,而不是孔文件)?我的$http服务如下所示: $http.get('../classes/githubusers.php').then(function(response){ $scope.gitUsers = response.data; console.log($scope.gitUsers); }); //function to show users on Admin public function showGith
$http.get('../classes/githubusers.php').then(function(response){
$scope.gitUsers = response.data;
console.log($scope.gitUsers);
});
//function to show users on Admin
public function showGithubUsers(){
$sql = "SELECT * FROM githubusers ORDER BY id DESC";
$connect = new Database($username="",$password="");
$connect->connect();
$result = $connect->db->query($sql);
while($row = $result -> fetch(PDO::FETCH_ASSOC)){
$jsonVar[] = $row;
}
echo json_encode($jsonVar);
//var_dump($jsonVar);
}
//function to show unique users from dB
public function showUniqueUsers(){
$sql = "SELECT * FROM githubusers";
$connect = new Database($username="",$password="");
$connect->connect();
$result = $connect->db->query($sql);
$nameArray = [];
while($row = $result -> fetch(PDO::FETCH_ASSOC)){
$this -> name = $row['name'];
array_push($nameArray, $this -> name);
}
$uniqueNameArray = [];
$uniqueNameArray = array_unique($nameArray);
echo json_encode($uniqueNameArray);
}
}
后端API如下所示:
$http.get('../classes/githubusers.php').then(function(response){
$scope.gitUsers = response.data;
console.log($scope.gitUsers);
});
//function to show users on Admin
public function showGithubUsers(){
$sql = "SELECT * FROM githubusers ORDER BY id DESC";
$connect = new Database($username="",$password="");
$connect->connect();
$result = $connect->db->query($sql);
while($row = $result -> fetch(PDO::FETCH_ASSOC)){
$jsonVar[] = $row;
}
echo json_encode($jsonVar);
//var_dump($jsonVar);
}
//function to show unique users from dB
public function showUniqueUsers(){
$sql = "SELECT * FROM githubusers";
$connect = new Database($username="",$password="");
$connect->connect();
$result = $connect->db->query($sql);
$nameArray = [];
while($row = $result -> fetch(PDO::FETCH_ASSOC)){
$this -> name = $row['name'];
array_push($nameArray, $this -> name);
}
$uniqueNameArray = [];
$uniqueNameArray = array_unique($nameArray);
echo json_encode($uniqueNameArray);
}
}
我想做的是分别从这两个PHP函数中获取数据,但是$http服务从githubusers.PHP文件中获取数据并在UI上应用错误。我试图在URL$http.get('../classes/githubusers.PHP/showUniqueUsers')中添加函数名,但它不起作用。Angular
http
服务指向一个可访问的URL,这意味着通常在后端,您必须使用基于控制器的机制,在这种机制中,您可以对访问url时希望发生的每种操作进行排序。每个现有的php框架都可以做到这一点
如果要创建自定义php文件,则需要将php类与将自动调用的基本
\u construct()
函数一起使用,或者如果不想使用类,则需要将函数放入单独的php文件中并单独调用。调用函数是不可能的。然而,PHP足够聪明。您可以创建一个新文件或向现有php文件添加代码,该文件将根据作为POST或GET参数传递的内容为您调用函数
例如,您可以将js代码更改为:
$http.get('../classes/githubusers.php?show=unique').then(function(response){
$scope.gitUsers = response.data;
console.log($scope.gitUsers);
});
您的PHP代码将变成
//Can use a switch case here
if($_GET['show'] == 'unique')
showUniqueUsers();
else if ($_GET['show'] == 'github')
showGithubUsers();
//function to show users on Admin
public function showGithubUsers(){
$sql = "SELECT * FROM githubusers ORDER BY id DESC";
$connect = new Database($username="",$password="");
$connect->connect();
$result = $connect->db->query($sql);
while($row = $result -> fetch(PDO::FETCH_ASSOC)){
$jsonVar[] = $row;
}
echo json_encode($jsonVar);
//var_dump($jsonVar);
}
//function to show unique users from dB
public function showUniqueUsers(){
$sql = "SELECT * FROM githubusers";
$connect = new Database($username="",$password="");
$connect->connect();
$result = $connect->db->query($sql);
$nameArray = [];
while($row = $result -> fetch(PDO::FETCH_ASSOC)){
$this -> name = $row['name'];
array_push($nameArray, $this -> name);
}
$uniqueNameArray = [];
$uniqueNameArray = array_unique($nameArray);
echo json_encode($uniqueNameArray);
}
}