【发布时间】:2018-11-25 13:24:41
【问题描述】:
我编写了代码来用数据库中的数据填充我的表。目前,我正在使用一个布尔变量,当所有相应的学生都显示在表中后,该变量将设置为 false。这样,在下一次查询数据库时,表将重新开始。
但我的代码似乎总是命中我的else 并触发 .html() 选项,覆盖除最后一个学生之外的所有学生。
为了确认数据没有问题,我将每个匹配查询的学生都登录到控制台;确实,所有数据都在那里,但我想追加直到查询完成。然后,在一个新的查询中,我想为下一组数据清除我的表。
以下代码的功能是用“姓氏”进行查询:
var firstTime = true;
$('#querylastName').click(function(){
var lastNameSelected = $('#userlName').val();
var ref = firebase.database().ref("students");
ref.orderByChild('lastName').equalTo(lastNameSelected).on("child_added", function(snapshot){
console.log(snapshot.val());
// Variables to hold retrieved data from the database.
var fname_val = snapshot.val().firstName;
var lname_val = snapshot.val().lastName;
var hometown_val = snapshot.val().hometown;
var ethnicity_val = snapshot.val().race;
var gender_val = snapshot.val().gender;
var program_val = snapshot.val().program;
var school_val = snapshot.val().school;
var concentration_val = snapshot.val().concentration;
var gradYear_val = snapshot.val().gradDate;
var timeToComplete_val = snapshot.val().timeToComplete;
var afterGrad_val = snapshot.val().afterGrad;
var explain_val = snapshot.val().elaborate;
// Append read data into the table.
if(firstTime){
$("#table_body").append("<tr><td>" + fname_val + "</td><td>" + lname_val + "</td><td>" + hometown_val + "</td><td>" + ethnicity_val + "</td><td>" + gender_val + "</td><td>" + program_val + "</td><td>" + school_val + "</td><td>" + concentration_val + "</td><td>" + gradYear_val + "</td><td>" + timeToComplete_val + "</td><td>" + afterGrad_val + "</td><td>" + explain_val + "</td></tr>");
}
else{
$("#table_body").html("<tr><td>" + fname_val + "</td><td>" + lname_val + "</td><td>" + hometown_val + "</td><td>" + ethnicity_val + "</td><td>" + gender_val + "</td><td>" + program_val + "</td><td>" + school_val + "</td><td>" + concentration_val + "</td><td>" + gradYear_val + "</td><td>" + timeToComplete_val + "</td><td>" + afterGrad_val + "</td><td>" + explain_val + "</td></tr>");
}
})
firstTime = false;
})
【问题讨论】:
标签: javascript html firebase firebase-realtime-database