使用等待/异步功能获取数据

时间:2020-06-13 20:36:03

标签: php arrays json fetch fetch-api

我正在寻找有关(我想)一个简单问题的帮助。一段时间以来,我一直在寻找这个答案,但没有找到任何答案。 我很难找到一种方法来选择数组中的2个电子邮件地址和2条消息并在div中显示它们

想法是要进行演示:

电子邮件1 讯息1

电子邮件2 讯息2

这是我的php:

<?php 
session_start();

try{
  $bdd = new PDO('mysql:host=localhost;dbname=XXX;charset=UTF8;', 'root', '');

  }

catch(Exception $e){
  die('Erreur : '.$e->getMessage());
}


$message = $bdd->prepare("SELECT emailaddress, message FROM messages");

$message->execute();

$results = $message->fetchAll(PDO::FETCH_ASSOC);

$json = json_encode($results);


header("content-type:application/json");
echo $json;
exit();

 ?>


这是我的JSON:


    async function updateDisplay() {
        const reponse = await fetch (url);
        const data = await reponse.text();
        const dataObject = JSON.parse(data);

      console.log(dataObject);
}
updateDisplay()

,结果在我的控制台中


0: "th@hotmail.fr"
1: "test message" 
email: "th@hotmail.fr"
message: "th@hotmail.fr test message"

<prototype>: Object { … }

1: {…}

0: "2@hotmail.fr"
1: "message 2"
email: "2@hotmail.fr"
message: "message test 2"

<prototype>: Object { … }

非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这是我的问题的解决方案:

    async function updateDisplay() {
        const response = await fetch ('http://localhost/xxxxx/fetch.php');
        const data = await response.text();
        const dataObject = JSON.parse(data);

        console.log(dataObject);

      let li = `<tr><th></th> <td> </td> <th></th></tr>`; 
        

        dataObject.forEach(user => { 
            li += `<tr> 
                <td>${user.email} </td> 
                <td>${user.message}</td>          
            </tr>`; 
        }); 
   

    document.getElementById("chat").innerHTML = li; 
 }
   
setInterval(updateDisplay, 1000);