以通过单选按钮将值插入 Firebase



1. 所以基本上我可以从单选按钮中检索值,这是代码

var radios = document.getElementsByName("pointS");
for (var i = 0, length = radios.length; i < length; i++){
if (radios[i].checked){
// do whatever you want with the checked radio
alert(radios[i].value);
// only one radio can be logically checked, don't check the rest
break;
}
}

2.所以现在我尝试将单选按钮的值发送到Firebase,但失败了。

var database = firebase.database();
var p = database.firebase.ref("points");
var data = radios;
database.ref("points").push(data);

3.但是如果我使用此代码,数据可以轻松地插入到Firebase中。这只是为了测试数据库的连接。

var database = firebase.database();
var point = database.ref("current point");
var data = { 
point:50
}
database.ref("current point").push(data);
  1. 这是我使用的HTML代码。

    <label for="point">Buy point: </label>
    <input type="radio" name="pointS" value="20" > 20
    <input type="radio" name="pointS" value="50" > 50
    <input type="radio" name="pointS" value="100" checked = "checked"> 
    100<br><br>
    

    我想将问题 2 的信息插入到火库中。如何解决此问题?

您在for循环中找到选定的无线电并记录它,但除此之外,您没有对它做任何事情。利用这个机会将其值放在对象中以进行提交,就像您在第三个示例中所做的那样。

var radios = document.getElementsByName("pointS");
var database = firebase.database();
var pointsRef = database.ref("points");
for (var i = 0; i < radios.length; i++){
if (radios[i].checked){
// do whatever you want with the checked radio
var data = {
point: radios[i].value
};
pointsRef.push(data);
// only one radio can be logically checked, don't check the rest
break;
}
}

在第二个示例中,您要尝试将HTMLCollection传递给 firebase,这就像尝试传入对象数组一样。

最新更新