如何将我从服务器获取的变量以表格的形式打印到html中?

时间:2019-04-25 22:13:22

标签: javascript html json server client

我正在设置服务器和客户端,并且在服务器中,我有一个变量im正在发送给我的客户端。然后,我的客户需要告诉我的html将此变量打印为表格,但我找不到方法。

服务器已启动并正在运行,我在客户端上获取了该变量。当我单击“植物列表”按钮时,在HTML中打印变量没有问题,但是我不知道如何将其放入html表中。

此功能中使用了来自服务器的消息,该消息是在从客户端调用请求之后使用的:

function DisplayPlanter(planter = "") {
    console.log("Generating list");
    var Listen = planter;
    document.getElementById("p3").innerHTML = Listen;

}

服务器变量为:

var PlantList = "\
            {\"Plant\":  {\"Temp\": {\"Fugt\": [ \
            [\"Gulderod\", 14, 65], \
            [\"Løg\", 15, 40], \
            [\"Chili\", 23, 50], \
         ] } }";

这是html按钮,调用requestList(),此函数正在从服务器请求变量,并且该变量是id =“ p3”中的printet:

<input type="button" onclick="requestList()" value="List of plants">
<p id = "p3"></p>

但是现在它只是打印出来:

{"Plant": {"Temp": {"Fugt": [ ["Gulderod", 14, 65], ["Løg", 15, 40], ["Chili", 23, 50], ] } }

这来自我的浏览器:https://imgur.com/a/U9o9JPk

我想知道是否有一种简单的方法可以将这个打印集放在表中?

我在网上找到了一个代码,但是我很难使它工作。我发现的代码是这样的:

function CreateTableFromJSON() {
        var myBooks = [
            {
                "Book ID": "1",
                "Book Name": "Computer Architecture",
                "Category": "Computers",
                "Price": "125.60"
            },
            {
                "Book ID": "2",
                "Book Name": "Asp.Net 4 Blue Book",
                "Category": "Programming",
                "Price": "56.00"
            },
            {
                "Book ID": "3",
                "Book Name": "Popular Science",
                "Category": "Science",
                "Price": "210.40"
            }
        ]

        // EXTRACT VALUE FOR HTML HEADER. 
        // ('Book ID', 'Book Name', 'Category' and 'Price')
        var col = [];
        for (var i = 0; i < myBooks.length; i++) {
            for (var key in myBooks[i]) {
                if (col.indexOf(key) === -1) {
                    col.push(key);
                }
            }
        }

        // CREATE DYNAMIC TABLE.
        var table = document.createElement("table");

        // CREATE HTML TABLE HEADER ROW USING THE EXTRACTED HEADERS ABOVE.

        var tr = table.insertRow(-1);                   // TABLE ROW.

        for (var i = 0; i < col.length; i++) {
            var th = document.createElement("th");      // TABLE HEADER.
            th.innerHTML = col[i];
            tr.appendChild(th);
        }

        // ADD JSON DATA TO THE TABLE AS ROWS.
        for (var i = 0; i < myBooks.length; i++) {

            tr = table.insertRow(-1);

            for (var j = 0; j < col.length; j++) {
                var tabCell = tr.insertCell(-1);
                tabCell.innerHTML = myBooks[i][col[j]];
            }
        }

        // FINALLY ADD THE NEWLY CREATED TABLE WITH JSON DATA TO A CONTAINER.
        var divContainer = document.getElementById("showData");
        divContainer.innerHTML = "";
        divContainer.appendChild(table);
    }

0 个答案:

没有答案