繁体   English   中英

来自php的fetch()json

[英]fetch() json from php

我有一个我有一个简单的获取请求。 我不是promises和asynch代码的专家,但据我所知,fetch url发送请求打开/获取/发布url并返回传递该内容的promise(响应)。 然后提取内容然后我可以在文本中解析它(response.text())解析后的text / json,无论如何,然后作为数据传递给另一个函数并在此处理

** JS代码**

fetch(url).then(function(response) {
    console.log(typeof(response));
    return response.text();
}).then(function(data) {
    console.log('data ', data);
}).catch(function(err) {
    console.log ('ERRORE ', err);
})
}

所以,如果我拿取一个php url,它会返回一个json,当我在console.log中时,我应该看到php中的数据和它内部的json回显的html代码,而我所看到的只是一串数字,如1137168(我输入了它,它是一个字符串......)

** PHP代码**

$selectNum = "SELECT num FROM table";
$quer = mysqli_query($conn, $selectNum);  
while($row = mysqli_fetch_array($quer, MYSQLI_ASSOC)){
    $arrayJSON = $row;
}
header('Content-Type: application/json');
echo json_encode($arrayJSON, JSON_PRETTY_PRINT); 
mysqli_close($conn); 

php和js是saparated文件

您需要在服务器端将标头设置为json,并将json_encode用于要在您的请求中返回的数组,如:

<?PHP
$data = /* your array */;
header('Content-Type: application/json');
echo json_encode($data);
?>

并使用jquery在客户端解析它

var data = /*data retuned from your request*/;
$.parseJSON($data);

希望能帮助到你 !

在您的while块上,您没有使用concatination,因此$ arrayJSON包含您在查询中选择的最后一行的num。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM