所以我正在开发一个网络应用程序。基本上我已经得到了以下代码,但是如何在单击删除按钮时删除它提取的每个员工?我还可以使用如何在删除子项时更新列表。例如,现在,如果我添加一个子项,表会自动使用新子项更新它,而不刷新页面。
var rootRef = firebase.database().ref().child("Balkar/Employees");
rootRef.on('child_added', snap => {
var id = snap.child("ID").val();
var name = snap.child("Name").val();
var email = snap.child("Email").val();
$("#table_body").append("<tr><td>" + id + "</td><td>" + name + "</td> <td>" + email +
"</td><td><button>Remove</button></td></tr>");
});
<h1>All Employees</h1>
<table>
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Email</th>
<th>Remove</th>
</tr>
<tbody id="table_body"></tbody>
</table>
编辑:
var rootRef = firebase.database().ref().child("Balkar/Employees");
rootRef.on('child_added', snap => {
var id = snap.child("ID").val();
var key = snap.key;
var name = snap.child("Name").val();
var email = snap.child("Email").val();
var btn = "<button id='removeEmployee' class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent'>Remove</button>";
$("#table_body").append("<tr id='"+key+"'><td>" + id + "</td><td>" + name + "</td> <td>" + email +
"</td><td><button>" + btn + "</button></td></tr>");
$("#removeEmployee").click(
function(){
rootRef.on('child_removed', snap => {
var key = snap.key;
$('#'+key).remove();
});
}
);
});
答案 0 :(得分:0)
要在删除项目时更新列表,请收听child_removed
个事件,并通过键找到该项目:
rootRef.on('child_added', snap => {
var id = snap.child("ID").val();
var key = snap.key;
var name = snap.child("Name").val();
var email = snap.child("Email").val();
$("#table_body").append("<tr id='"+key+"'><td>" + id + "</td><td>" + name + "</td> <td>" + email +
"</td><td><button>Remove</button></td></tr>");
});
});
rootRef.on('child_removed', snap => {
var key = snap.key;
$('#'+key).remove();
});
答案 1 :(得分:0)
首先,您要创建具有相同ID的多个删除按钮。情况应该不是这样。其次,您需要将密钥与每个按钮相关联,以便当用户单击其中一个按钮时,您知道要删除哪个项目。以下代码应该有所帮助。
while( $row = mysqli_fetch_assoc( $result ) ){
参考:https://firebase.google.com/docs/reference/js/firebase.database.Reference#remove