我正在学习 Javascript,并创建了一个表格,该表格提供了我从 MySQL 生成的一段时间内的平均值。输出类似于:
Time C W T C2 T2
00:00:00 5.8 22.4 12.3 18.8 1.9
00:15:00 7.5 21.4 13.3 16.6 2.5
00:30:00 6.2 16.1 10.9 10.9 2.1
00:45:00 12.8 14.2 7.0 12.1 4.3
我基本上是从 PHP 文件中提取数据,然后替换/拆分数据,所以这样做。我将它们分成行,添加 HTML,然后将它们切成单元格并再次用 HTML 回显它们。我的那部分代码如下所示:
var lines = data.replace(/\r\n/g, "\n").split("\n");
var outPut = "<table class='timetable'>";
outPut += "<tr><th>T</th><th>C</th><th>W</th><th>T</th><th>C2</th><th>T2</th></tr>";
for (var i = 0; i < lines.length; i++) {
outPut += "<tr>";
var cells = lines[i].split("|");
for (var j = 0; j < cells.length; j++) {
outPut += "<td>" + cells[j] + "</td>";
}
outPut += "</tr>";
}
outPut += "</table>";
console.log("Cells!");
$("#report").append(outPut);
$("#report td:contains(':')").css("background-color", "#ae1036").css("color", "#FFFFFF");
我有一个按钮来控制这个功能并添加表格(为了比较起见,用户喜欢多少次)。该按钮是:
<button type="button" onclick="generateReport();">Add Projection</button>
然后我有一个清除页面的按钮:
<button type="button" onclick="clearReport();">Clear</button>
我想要做的是转动我的整个桌子,这样时间就会越过顶部。此外 - 对于 MySQL 输出,如果平均值为 0 - 不存在数据并且跳过时间(例如 00:45 到 02:30)。我需要包括那些零。另外 - 我将需要每个单元格的底部和侧面的总数。我知道我要求很多——但我真的需要一些指导——在这一点上,我不知道该怎么做。
最终产品将如下所示:
00:00 00:15 00:30 00:45 01:00 01:15 01:30 01:45 02:00 02:15 Total
1.5 1.8 9.5 15.0 13.2 5.4 4.3 7.5 9.5 6.5 74.2
Totals: 1.5 1.8 9.5 15.0 13.2 5.4 4.3 7.5 9.5 6.5 74.2
然后当我再次追加时,它应该更像:
00:00 00:15 00:30 00:45 01:00 01:15 01:30 01:45 02:00 02:15 Total
1.5 1.8 9.5 15.0 13.2 5.4 4.3 7.5 9.5 6.5 74.2
1.1 1.2 9.3 15.0 13.2 5.1 4.3 7.4 9.6 6.8 72.0
Totals: 2.6 3.0 18.8 30.0 26.4 10.5 8.6 14.9 19.1 19.3 146.2
我想也许我可以制作表格标题,然后将每个值分配给一个按时间链接的数组作为主键?但我没有看到类似的东西。我读到在 JavaScript 中,对象是属性和值的松散集合——本质上是键/值对……所以我确信这是我没有想到的——在 PHP 领域已经有一段时间了。