Eine einfachere Herangehensweise, die ich für eine einfache HTML-Tabelle gefunden habe, besteht darin, dieses Snippit bei der Definition Ihrer Tabellen-Tags für jede Ihrer Spalten einzufügen, wobei #datatable-basic die ID Ihres Tabellen-Tags ist und das n-te Kind Ihre Spalten darstellt:
onclick="w3.sortHTML('#datatable-basic', '.item', 'td:nth-child(1)')
Ein vollständiges th-Tag würde also wie folgt aussehen:
<th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7"
onclick="w3.sortHTML('#datatable-basic', '.item', 'td:nth-child(4)')" >Date</th>
Dann braucht jedes Ihrer Zeilen-Tags eine Elementklasse wie diese, wenn Sie Flask verwenden, wie ich es tat
<tbody>
<tr class="item" > row text here</tr>
</tbody>
Dann müssen Sie dieses Skript in Ihre Vorlage einfügen:
<script src="https://www.w3schools.com/lib/w3.js"></script>
Ein vollständiges Arbeitsbeispiel in einem Codepen finden Sie hier: https://codepen.io/acity7/pen/QWmqgQR
Dies funktioniert auf der Grundlage von Code aus https://www.w3schools.com/w3js/w3js_sort.asp für eine sehr einfache Implementierung, um eine Tabelle zu sortieren, ohne eine Datenbank oder ausgefeiltere JS-Pakete wie Fancytable.js zu verwenden, die dynamisch nach Spalten sortiert werden können.
Bonusfunktion - so können Sie eine dynamische Sortierung einfach hinzufügen.
Fügen Sie im Body-Tag Ihrer Tabelle eine id wie id="table" ein:
<tbody id="table">
</tbody>
Fügen Sie diese Skripte in Ihre Kopfzeile ein:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$("#search").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#table tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
</script>
Und fügen Sie eine Suchleiste mit der id="search" hinzu, um die tr-Tags zu durchsuchen und sie direkt in Ihrer Tabelle zu filtern:
<input id="search" type="text" class="form-control" placeholder="Search for name and email......">