KING_JOKER6 2022-04-04 02:37 采纳率: 75%
浏览 48
已结题

用数据库传json给html,无法显示

问题遇到的现象和发生背景

做一个读取数据库的html 和js,但是html里关于数据库是空白

问题相关代码,请勿粘贴截图
<!DOCTYPE html>
<html lang="en">
    <head>
      <title>Final Assigment</title>
        <script type="text/javascript"></script>
        <meta charset="UTF-8">
        <title>Final Assigment</title>
          <script defer src="final.js"></script>
        <link rel="stylesheet" href="final.css">
    </head>

    <body onload="getData()">
        <h1>Final Assigment Of Web</h1>
        <div id="Thirty_measurements"></div>
        <h2>30 Measurement from API</h2>

    </body>
</html>


```javascript

function dataToHtmlRepresentation(dataObjects){

    let html='<table><tr><th>Row Number</th><th>Measurement time</th><th>Measurement Type</th><th>Measured Value</th></tr>';
    const l = dataObjects.length;

    for (let i = 0; i < l; i++) {
        const dataObject = dataObjects[i];
            html +=`
             <tr>
             <td>${dataObject[i].id}</td>
             <td>${dataObject[i].device_id}</td>
             <td>${dataObject[i].date_time}</td>
             <td>${dataObject[i].data}</td>
             </tr>
             `
        }
        html += '</table>';
        return html;
    }
    
    const DATA_SOURCE = 'http://webapi19sa-1.course.tamk.cloud/v1/weather';
    
    // Making a get request using the Fetch API
    function getData() {
        fetch(DATA_SOURCE).then(response => {return response.json()})
                          .then(data => {
                            const e = document.getElementById("data-container");
                            e.innerHTML = dataToHtmlRepresentation(data);
                          })
                          .catch(error => console.error('AAARRRGH! ' + error));
    }
运行结果及报错内容

结果是完全不显示关于数据库的内容

我的解答思路和尝试过的方法

我的思路是html里body onload可能有问题,但是没能解决

我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 关注

    dataObject已经是项目元素了,之后就不要加[i]了
    改成

            html +=`
             <tr>
             <td>${dataObject.id}</td>
             <td>${dataObject.device_id}</td>
             <td>${dataObject.date_time}</td>
             <td>${dataObject.data}</td>
             </tr>
             ` 
    

    另外你页面上并没有id为data-container的元素,

    const e = document.getElementById("data-container");
    应该改成
    const e = document.getElementById("Thirty_measurements");

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月13日
  • 已采纳回答 4月5日
  • 创建了问题 4月4日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程