【问题标题】:Edit the user data by it's Id on specific index通过特定索引上的 ID 编辑用户数据
【发布时间】: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


    【解决方案1】:

    .then((响应) => response.json()) .then((响应) => {

    data = response;
    console.log(data.pop());
    

    })

    【讨论】:

    • 不是只返回最后一个用户吗?但是我有随机数量的用户,如果我想要第二个或第五个怎么办?有用吗?
    猜你喜欢
    • 2020-03-17
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 2019-10-09
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多