2017-08-05 132 views
-1

我正在試圖獲取php的json執行角4來填充表。 現在我有這個得到一個JSON文件的數據:angular 4從php獲取json

export class CountryService { 

    constructor(private http: Http) {} 

    getCountries() { 
    return this.http.get('http://cube-developing.de/connect.php') 
     .toPromise() 
     .then(res => <any[]> res.json().data) 
     .then(data => { return data; }); 
    } 
} 

PHP部分:

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

$conn = new mysqli("LOGIN DATA") 

$result = $conn->query("SELECT _title, _description_short, _displayprice FROM datafeed23"); 

$outp = ""; 
while($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
    if ($outp != "") {$outp .= ",";} 


    $outp .= '{"Produktitel":' . $rs[_title] . ','; 
    $outp .= '"Kurzbeschreibung":' . $rs[_description_short] . ','; 
    $outp .= '"Preis":'. $rs[_displayprice] . '}'; 
} 
$outp ='{"records":['.$outp.']}'; 
$conn->close(); 

echo json_encode($outp); 
?> 

是否有一種方式來獲得從PHP響應一個JSON?

+0

是的,這是可能的。這就像brooooad,如果我正確理解你的問題。最短的答案可能:建立一個PHP後端並向其發出http請求:D – Alex

+0

多數民衆贊成我想要的:D import {Injectable} from'@ angular/core'; 從'@ angular/http'導入{Http,Response}; @Injectable() 出口類ProdukteService { 構造(私有HTTP:HTTP){} getProdukte(){ 回報this.http.get('http://cube-developing.de/connect.php ') .toPromise() .then(res => res.json()。records) .then(records => {return records;}); } } 但那不工作......我有什麼要改變以得到這個工作? – Degcube

+0

所以你有後端設置?好。然後只需追加完整的URL,可能是'http:// cube-developing.de/connect.php'如果你在開始時不附加'http',Angular會自動從你的本地主機搜索url(假設你正在運行它在當地),它當然不會找到這樣的路徑。 – Alex

回答

0

如果我理解正確的話,你和你想獲得JSON而不是JavaScript對象,你只需要刪除此行.then(res => <any[]> res.json().data)