![](/img/trans.png)
[英]Angular JS: importing JSON data with $http.get() - works in controller, does not in a service - WHY?
[英]Angular JS $http.get does not receive data from PHP script
我正在使用angular的$ http.get函數來調用PHP腳本文件以檢索數據
var $promise = $http.get("../php-bin/example.php",obj).success(function(data) {
console.log(data);
});
PHP應該只是從mysql數據庫中獲取數據,以找出一種將數據獲取到我的應用程序中的方法
$user = json_decode(file_get_contents('php://input'));
$email = $user->email;
$pass = $user->pass;
$con = //a mysql_connection;
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$validateEmail = "SELECT `Email` FROM `newUsers` WHERE `Email` = '$email' ";
if ($result = mysqli_query($con,$validateEmail)) {
if ($result->num_rows == 1){
$date = '2014-08-13';
//$sql = "INSERT INTO newUsers (Email, CreationDate, UserRef, Type, id) VALUES ('$email','$date','$email','Host','$ssid')";
$sql = "SELECT `email` FROM `newUsers` WHERE `hashpass` = '$pass' ";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($result);
return $row;
//I never receive this data in the angular app.
}
}
mysqli_close($con);
?>
有人可以指出正確的方法嗎?
我看到您有一個return
語句,而不是echo
語句。 PHP輸出中未顯示return
語句。 只有在包含文件時,函數外部的return
語句才有意義 :
$returned = include('the_file_you_showed_here.php');
//you will hold the row here
return
語句殺死返回到包含腳本(如果有) 的當前腳本 ,但不將任何值發送到輸出(這是die
/ exit
的目的)。 你應該:
return
更改為echo
。 echo
指令或非PHP內容之前發送header('Content-type: application/json')
。 return json_encode($row)
。 在您的PHP中,確保您回顯您的結果,回顯的結果被傳遞到您的變量中
例如,如果您要從范圍中傳遞雜語,
function($scope,$http){
$scope.obj= "your variable";
$reuslt = http.get('yourlocation/yourfile.php?val='+obj');
你的PHP腳本
<?
$value = $_GET['val']
//not your variables have been passed in and you can use it to do your custom function wich ever way you like
and echo your result after wards
?>
希望這可以幫助
您不能像這樣調用相對路徑。 該文件必須存在於公共目錄或更低的目錄中。 例如,如果所有文件都在/ home /您的名稱/ public中,則需要調用/php-bin/example.php
,而php-bin位於公共目錄(/ home /您的名稱/ public / php-bin)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.