【发布时间】:2021-12-29 14:57:48
【问题描述】:
我正在尝试通过其特定的 MongoDB 编辑用户数据,当我单击它时,它会打开一个新的模式弹出窗口,并且在其下方有一个更新按钮,单击它后我希望用户数据位于编辑索引上线路会改变。
以下是我的代码:
function tableShowUser() {
document.getElementById("tbod").innerText = "";
axios
.get("")
.then((response) => {
dataUsers = response.data;
//console.log(dataUsers);
if (dataUsers.length === 0) {
alert("Please Create a User first!!");
} else {
dataUsers.map((item, index) => {
let iddata = item;
//console.log(iddata._id);
// console.log(iddata, index);
var id = item._id
// console.log(id);
let trUsers = document.createElement("tr");
let td1 = document.createElement("td");
td1.id = `${item._id}_userName`
let td2 = document.createElement("td");
let td3 = document.createElement("td");
let td4 = document.createElement("td");
let td5 = document.createElement("td");
let td6 = document.createElement('td');
var btn1edit = document.createElement("button");
btn1edit.textContent = "EDIT";
btn1edit.addEventListener("click", () => {
editwindow();
});
document.querySelector(".update").addEventListener("click", () => {
upDATE(`${item._id}_userName`);
});
var btn2delete = document.createElement("button");
btn2delete.textContent = "DELETE";
btn2delete.onclick = function () {
DELETE(iddata._id);
};
console.log(td1);
td1.appendChild(document.createTextNode(item.name));
td2.appendChild(document.createTextNode(item.email));
td3.appendChild(document.createTextNode(item.address));
td4.appendChild(btn1edit);
td5.appendChild(btn2delete);
td6.appendChild(document.createTextNode(item._id));
trUsers.appendChild(td1);
trUsers.appendChild(td2);
trUsers.appendChild(td3);
trUsers.appendChild(td4);
trUsers.appendChild(td5);
trUsers.appendChild(td6)
document.getElementById("tbod").appendChild(trUsers);
})
}
})
.catch((error) => {
console.log(error);
});
}
function upDATE(editid) {
let name = document.getElementById("upName").value;
let email = document.getElementById("upEmail").value;
let address = document.getElementById("upAddress").value;
if (name == "" && email == "" && address == "") {
alert("Please Enter Something in USER input field(s)!!");
} else {
axios
.put(`${editid}`, {
name,
email,
address, //if value pairs have same name then we can write it like this
})
.then((response) => {
alert("User Updated Successfully");
console.log(response.data);
tableShowUser()
})
.catch((error) => {
console.log(error);
});
}
setTimeout(() => {
document.getElementById("upName").value = "";
document.getElementById("upEmail").value = "";
document.getElementById("upAddress").value = "";
},2000)
cLose();
}
当我调用upDATE() 函数时,它应该更新特定的索引,但它所做的只是给我未定义或更新所有用户的相同编辑,因为它们在循环中。
请给我一些建议,我真的需要一些东西,即使是一个提示也会很好。
谢谢
随意编辑问题
【问题讨论】:
标签: javascript node.js mongodb express ecmascript-6