简体   繁体   English

如何使用 javascript 中的每个循环获取当前索引并更新到实时数据库

[英]How can i get current Index using for each loop in javascript and update into realtime database

I am working with javascript also am a newbie in js so actually, I want to get the current index and then update a specific field to the realtime if somebody helps me out I will thankful to him here is my script where I fetch the data in realtime firebase and I put my value inside inner HTML format so I want when user press specific buttons its pending data update to booked.我正在使用 javascript 也是 js 的新手,所以实际上,我想获取当前索引,然后如果有人帮助我,我会实时更新特定字段我会感谢他这是我的脚本,我在其中获取数据实时 firebase 并将我的值放在内部 HTML 格式中,所以我希望当用户按下特定按钮时,其挂起的数据更新为预订。

userDataRef.once("value").then(function(snapshot) {
  snapshot.forEach(function(childSnapshot, index) {
    console.log(childSnapshot.val());
    key = childSnapshot.key;
    userid = childSnapshot.val().userid;
    var carid = childSnapshot.val().carid;
    var imageload = childSnapshot.val().imgurl;
    var loadfirstname = childSnapshot.val().userfirstname;
    var loadcarname = childSnapshot.val().carname;
    var loadlastname = childSnapshot.val().userlastname;
    var loadphonenumber = childSnapshot.val().phoneNumber;
    var loaddropoffadd = childSnapshot.val().dropoffaddress;
    var loadpickupadd = childSnapshot.val().pickupaddress;
    loadprice = childSnapshot.val().price;


    var appenddata =
      '<div class="container rounded"  style="background-color: #00829E" id="datalist">' +


      '<div class="row">' +
      '<div class="col-md-12">' +
      '<div class="row">' +
      '<div class="col-md-4 mt-2 mb-2 ml-2">' +
      '<div class="container rounded"style="background-color: #efefef">' +
      '<center>' +
      '<img src="' + imageload + '" id="loadimage" style="height: 100px; width: 100px;">' +
      '</center>' +
      '</div>' +
      '</div>' +

      '<div class="col-md-6 mt-2 mb-2">' +
      '<div class="container rounded para">' +
      '<h5 id="loadcarname">' + loadcarname + '</h5>' +
      '<p id="loadfirstname">First Name: ' + loadfirstname + '</p>' +
      '<p id="loadlastname">Last Name: ' + loadlastname + '</p>' +
      '<p id="loadphone">Phone Number: ' + loadphonenumber + '</p>' +
      '<p id="loadpickup">Pickup Address: ' + loadpickupadd + '</p>' +
      '<p id="loaddropoff">Dropoff Address: ' + loaddropoffadd + '</p>' +
      '</div>' +
      '</div>' +

      '<div class="col-md-2"></div>' +

      '</div>' +


      '<div class="row">' +
      '<div class="col-md-4"></div>' +
      '<div class="col-md-4"></div>' +
      '<div class="col-md-2 para1 mt-2">' +
      '<p id="loadprice">Price:' + loadprice + ' Sum/Day</p>' +
      '</div>' +
      '<div class="col-md-2 mb-3">' +
      '<button class="btn btn-info btn-sm rounded-pill check"  id="approvebutton" value ="Booked" onclick="myFunction(this.value)"  aria-pressed="true">Approve</button>' +
      '</div>' +

      '</div>' +
      '</div>' +
      '</div>' +
      '</div>';
    $("#listshow").append(appenddata);



  });
});

when user press the button I call function named Myfunction I just want to update specific id in that function当用户按下按钮时,我调用名为 Myfunction 的Myfunction我只想更新 function 中的特定 ID

my function name script我的 function 名称脚本

function myFunction(value) {
  approvecar = document.getElementById('loadprice').value;

  firebase.database.ref("carBooking/" + userid).update({
    status: ""
  });
}

这是我的实时数据库图片 我想更新当前用户更新状态

To be able to write a value in the database, you need to know the complete path to that node.为了能够在数据库中写入值,您需要知道该节点的完整路径。 Right now, you know what value to write, but you've lost information about what key (the -M.... value) to write it to.现在,您知道要写入什么值,但是您已经丢失了有关将其写入哪个键( -M....值)的信息。

So you'll need to pass the key of the item the user clicked on, from your HTML into the myFunction function.因此,您需要将用户单击的项目的密钥从 HTML 传递到myFunction function。

The simplest way to do that is something like:最简单的方法是:

'<button class="btn btn-info btn-sm rounded-pill check"  id="approvebutton" value ="Booked" 
onclick="myFunction(\''+key+'\', this.value)" // 👈 is changed
aria-pressed="true">Approve</button>' +

There may be some syntax problems in this part as I'm having a hard time parsing your HTML construction code.这部分可能存在一些语法问题,因为我很难解析您的 HTML 构造代码。

Now that you're passing both the key and the value, you can update the correct node with:现在您正在传递键和值,您可以使用以下命令更新正确的节点:

function myFunction(key, value) {
  approvecar = document.getElementById('loadprice').value;

  firebase.database.ref("carBooking").child(key).update({
    status: ""
  });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何用forEach替换javascript for循环并获取每次迭代的索引? - How can I replace a javascript for loop with a forEach and get access to the index for each iteration? 如何在每个循环中获取 Meteor 模板中数组的索引? - How can I get the index of an array in a Meteor template each loop? 在Google Chrome浏览器中使用JavaScript控制台,如何获取所选/活动/当前标签的索引? - Using JavaScript console in Google Chrome how can I get the index of the selected/active/current Tab? 如何使用 Javascript 从云 Function 更新实时数据库? - How to update Realtime Database from Cloud Function using Javascript? 如何使用 JavaScript 在实时数据库中存储 firebase 存储图像 URL - how can I store firebase storage image URL in Realtime database using JavaScript 如何使用Javascript从firebase实时数据库动态自动生成选项卡和内容 - How can I Autogenerate tabs and also the contents dynamically from firebase realtime database using Javascript 如何使用循环将数据推送到实时数据库 - How to push data to realtime database using a loop 如何在Firebase实时数据库中使用更新值? - How to update a value using in firebase realtime database? 在 JavaScript 中的每个循环中,如何通过索引获取地图值? - How to get map values by index when inside each loop in JavaScript? 无法使用 javascript 获取数组中当前单击元素的索引 - can't get index of current clicked element in array using javascript
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM