2017-08-05 98 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)