Ich verwende Firebase, um eine einfache E-Commerce-Website zu erstellen, und habe ein Problem festgestellt. Für das Backend versuche ich eine HTML-Tabelle mit Firebase-Datenbankdaten zu füllen.HTML-Tabelle mit Firebase-Datenbankdaten füllen
Derzeit werden die Daten angezeigt und ich kann den Hauptteil der Tabelle auffüllen, aber gleichzeitig möchte ich die Header für die Tabelle mit dem gleichen Snapshot erstellen. Ich konnte dies tun, aber es wiederholt sich für jeden Datensatz in der Datenbank. Zwei Datensätze haben also zwei Header.
Wie kann ich einfach den Index des Snapshots abfangen und nur die createHeaders
Funktion einmal vervollständigen, oder gibt es eine effizientere Möglichkeit, dies zu tun. Unten ist die JS
ich verwende:
itemsRef.on('value', function(snapshot) {
snapshot.forEach(function(child) {
createHeaders(child.val());
showItems(child.val(), child.key);
});
});
function createHeaders(data) {
var html = '';
html += '<tr>';
$.each(data, function(key, value) {
html += '<th>' + key + '</th>';
});
html += '<th class="text-right">';
html += '</tr>';
$("#tableHeaders").append(html);
}
function showItems(data, key) {
var html = '';
html += '<tr>';
$.each(data, function(key, value) {
html += '<td>' + value + '</td>';
});
html += '<td class="text-right"><a href="/" class="btn btn-primary btn-sm"><i class="fa fa-pencil"></i> Edit</a> <a href="/" class="btn btn-danger btn-sm"><i class="fa fa-times"></i> Delete</a></td>';
html += '</tr>';
$('#results').append(html);
}