我正在使用 Node js 和 mysql。我正在尝试检查 html 表中是否存在 mysql 数据库表中的条目。如果该条目不存在,则应添加它,否则不应添加它。但是,代码中有问题,我找不到它是什么。我想检查该行最后一个单元格中的id是否等于mysql表中记录的id。然而,每次我按下选项卡时,它都会添加重复的记录。有人可以帮忙吗?谢谢
以下是该函数的代码:
function addRow(tableID) {
// find the number of rows in the table myreservations
<% for(var i = 0;i<reservations.length;i++) { %>
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var foundalready = false;
var row = table.insertRow(rowCount);
for(var i=0; i<rowCount;i++){
if(<%- JSON.stringify(reservations[i].rid)%> == table.rows[i].cells[6].id){
foundalready = true;
break;
}
}
if (foundalready == false){
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "checkbox";
element1.name = "chkbox[]";
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
cell2.innerHTML = rowCount;
var cell3 = row.insertCell(2);
var element2 = document.createElement("div");
element2.type = "text";
element2.textContent=<%- JSON.stringify(reservations[i].tablenumber); %>;
element2.name = "txtbox[]";
cell3.appendChild(element2);
var cell4 = row.insertCell(3);
var element3 = document.createElement("div");
element3.type = "text";
element3.textContent=<%- JSON.stringify(reservations[i].stime); %>;
element3.name = "txtbox[]";
cell4.appendChild(element3);
var cell5 = row.insertCell(4);
var element4 = document.createElement("div");
element4.type = "text";
element4.textContent=<%- JSON.stringify(reservations[i].etime); %>;
element4.name = "txtbox[]";
cell5.appendChild(element4);
var cell6 = row.insertCell(5);
var element5 = document.createElement("div");
element5.type = "text";
element5.textContent=<%- JSON.stringify(reservations[i].priority); %>;
element5.name = "txtbox[]";
cell6.appendChild(element5);
var cell7 = row.insertCell(6);
var element6 = document.createElement("div");
element6.type = "div";
element6.id=<%- JSON.stringify(reservations[i].rid); %>;
element6.name = "txtbox[]";
element6.textContent = <%- JSON.stringify(reservations[i].rid); %>;
cell7.appendChild(element6);
}
<% } %>
}
最佳答案
我并没有真正理解完整的代码,但事实是有些事情你不能做。
1-在两个循环中您使用相同的增量变量 i。
2-您正在执行 var cell2 = row.insertCell(1);
以及您正在执行的 if 子句
if(<%- JSON.stringify(reservations[i].rid)%> == table.rows[i].cells[6].id)
你看,这个条件永远无法满足。你需要重新检查你正在考虑的对象以及周围的所有东西。
关于html - 检查 html 表中的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532229/