我有一个输入字段,用户可以在其中写入新输入或更改之前添加的输入。
我可以使用.map检索输入但后来我被卡住了,因为我不确定如何存储值。
var pickUp = $("input[name='pickUp[]']")
.map(function(){return $(this).val();}).get();
例如使用p1,p2 ......作为关键字:
输入
我想要的结果(下面的数据库值是手动添加的):
答案 0 :(得分:2)
参考链接:https://firebase.google.com/docs/database/web/read-and-write
let the dynamic values that you want to update are stored in a object
const data = {
p1: 'area1',
p2: 'area2',
p3: 'area3',
and so on....
}
const valueRef = firebase.database().ref('/Location_to _data/pickUp');
for (var key in data) {
if (data.hasOwnProperty(key)) {
valueRef.update({
[key]: data[key]
});
}
}
.update({})将更新数据(如果存在)或创建新数据(如果不存在)。 这将解决您的问题。
答案 1 :(得分:2)
您可以通过为所有输入提供公共类名来形成对象。同时为所有输入标签提供相应的ID
让我们说班级名称为:
<input id='p1' class='objectClass' />
<input id='p2' class='objectClass' />
<input id='p3' class='objectClass' />
<input id='p4' class='objectClass' />
.
.
.
现在使用javascript:
var i = 1;
var obj = {};
$('. objectClass').each(function(){
var key = "p" + $(this).attr('id');
obj[key] = $(this).val();
i++;
});
现在obj将以您选择的格式存储数据。现在剩下的只是将它存储在firebase数据库中:
firebase.database().ref('/path_to_location/').set(obj);
答案 2 :(得分:0)
bankaujjwal和Ashiq Muhammed都有道理。但是要使用他们的方法,我将不得不改变我设置输入字段的方式。
所以我尝试了它的另一种方式。
我不确定它是否是正确的方法。但既然它已经解决了我的问题,我会用它作为答案。
var pNo= 1;
for (var i = 0; i <pickUp.length ; i++) {
var key = "p";
key+=pNo;
firebase.database().ref(uid + '/pickUp').update({
[key]: pickUp[i]
});
pNo++
}