【发布时间】:2018-10-27 23:51:33
【问题描述】:
我想创建一个带有标题的表格。 要在 tbody 中创建行和列,我将查询 db 并使用 javascript 填充单元格。 更重要的是,我只想使用字符串变量链接每行的第一个单元格。 下面的代码运行良好,但存在一个问题 - 仅链接一行而不是所有行。请看下图。
表格应该是这样的......
sn | station name | address | zone
------------------------------------------------------------
1 | lions building | 2, moloney str, | 2
| police station | lagos island, |
------------------------------------------------------------
2 | marako police | new market road, | 2
| station | oniru, vi, lagos. |
------------------------------------------------------------
从上表来看,sn(1) 和sn(2) 应该是联系在一起的,但事实并非如此。请参阅下面的代码和屏幕截图。
这里是变量声明
var stationName;
var zone;
var address;
var city;
var lga;
var state;
var status;
var period;
var stationid;
var db = openDatabase('pcrdb', '3.6.19', 'Police Criminal Records Database', 500*1024*1024);//500MB
此函数从数据库中查询记录并将其解析为变量
function viewStations(){
document.getElementById("viewbutton").disabled = true;
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM STATIONS', [], function (tx, results) {
for(i=0; i < results.rows.length; i++){
rows = results.rows.item(i);
//stationid = ("<a href = '"javascript:void(0)"'; onclick = editStation(" + rows.st_id + ");> +rows.st_id+ </a>");
stationid = rows.st_id;
stationName = rows.station;
address = rows.address+", "+rows.city+", "+rows.lga;
zone = rows.zone;
createCells();
}
}, null);
});
}
在此处创建表格行和列
function createCells() {
var tbody = document.getElementById("tbody");
var row = document.createElement("tr");
var td1 = document.createElement("td");
td1.setAttribute("align","center");
td1.setAttribute("id","sn");
var td2 = document.createElement("td");
td2.setAttribute("align","center");
td2.setAttribute("id","stn");
var td3 = document.createElement("td");
td3.setAttribute("align","center");
td3.setAttribute("id","ad");
var td4 = document.createElement("td");
td4.setAttribute("align","center");
td4.setAttribute("id","zn");
var cellText1 = document.createTextNode(stationid);//append text to each cell
var celltext2 = document.createTextNode(stationName);
var celltext3 = document.createTextNode(address);
var cellText4 = document.createTextNode(zone);
td1.appendChild(cellText1);
td2.appendChild(celltext2);
td3.appendChild(celltext3);
td4.appendChild(cellText4);
row.appendChild(td1);//append columns to rows
row.appendChild(td2);
row.appendChild(td3);
row.appendChild(td4);
tbody.appendChild(row);//append row to tbody
这是链接的 stationid。在这里,只有第一行的单元格被链接。第二行没有链接。
var linktd = document.getElementById("sn").innerHTML = "<a href='javascript:void(0);' onclick='editStation(" + stationid + ");'>"+stationid+"</a>";
}
当链接的 id 被点击时,这个函数会被调用。
function editStation(){
alert("This link is not working yet. The table id is: "+stationid);
}
这是html代码
<div class="row">
<div class="col-sm col-md col-lg col-xl">
<table id="stationtable" class="table table-borderless table-hover" style="border-style:solid; border-width:0px;width:100%; height:auto; margin-radius:5px;">
<thead>
<tr>
<th style="color:brown; font-weight:bold; font-size:18px; width:5%; text-align:center;">SN</th>
<th style="color:brown; font-weight:bold; font-size:18px;width:35% text-align:center;">STATION NAME</th>
<th style="color:brown; font-weight:bold; font-size:18; width:40% text-align:center;">ADDRESS</th>
<th style="color:brown; font-weight:bold; font-size:18; width:20% text-align:center;">ZONE</th>
</tr>
</thead>
<tbody id="tbody">
<!--<tr id="tr">
</tr>-->
</tbody>
</table>
<button id="viewbutton" onclick="viewStations()">CLICK TO DISPLAY STATIONS </button>
</div>
</div>
【问题讨论】:
-
使用全部大写一般被认为是在线大喊大叫。不建议在标题中使用全部大写。
-
请正确格式化您的代码。
-
我再次格式化了代码...谢谢。
-
在什么时候填充这些单元格? (sn, stn, ad, zn)
-
好的!!!谢谢大家,我已经解决了它,它显示得很好。我想赞扬@EulerRibeiroSudbrack,他建议我更改我的代码。然而,我做的比他建议的要多。我在 中创建了一个新的
并将 绑定到 。谢谢大家...我将重新发布整个代码。
标签: javascript html database