現在、Firebaseを使用して簡単な電子商取引Webサイトを構築しており、問題が発生しています。バックエンドの場合、私はFirebaseデータベースのデータをHTMLテーブルに移そうとしています。HTMLテーブルにFirebaseデータベースデータを埋め込む
現在、データが表示されていますが、テーブルの本体にデータを取り込めますが、同時に同じスナップショットを使用してテーブルのヘッダーを作成したいとします。私はこれを行うことができましたが、それはデータベース内のすべてのレコードに対して繰り返されます。したがって、2つのレコードには2つのヘッダーがあります。
私は単にスナップショットのインデックスをキャッチし、createHeaders
関数を1回だけ完了するか、これを行うより効率的な方法があります。以下は、私が使用していますJS
次のとおりです。
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);
}