我正在设置服务器和客户端,并且在服务器中,我有一个变量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);
}