Tabelle Sortieren

  • JavaScript

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Visual_Prog.

    Tabelle Sortieren

    Moin,
    ich habe folgende HTML Tabelle, bei der ein button neue zeilen erstellt, da es sich um eine highscore Tabelle handelt.

    HTML-Quellcode

    1. <div class="eingabe">
    2. <button id="buttonhighscore" onclick="myCreateFunction();sortTable()"; >Highscore eintragen</button>
    3. </div>
    4. <div id="tabellencontainer">
    5. <table id="myTable" class ="tabelleninhalt">
    6. <tr>
    7. <th >Name</th>
    8. <th>Punkte</th>
    9. <th>Datum</th>
    10. </tr>
    11. <tbody id="myid">
    12. </tbody>
    13. </table>
    14. <br>
    15. </div>


    Die Neuen Zeilen werden mit dieser JS Function generieert:

    HTML-Quellcode

    1. ​function myCreateFunction() {
    2. var table = document.getElementById("myid");
    3. var row = table.insertRow(0);
    4. var cell1 = row.insertCell(0);
    5. var cell2 = row.insertCell(1);
    6. var cell3 = row.insertCell(2);
    7. const heute = new Date(); // aktuelles Datum und aktuelle Lokalzeit
    8. const utc = new Date().toUTCString();
    9. cell1.innerHTML = spielerNamen[spielerIndex];
    10. cell2.innerHTML = punkte;
    11. cell3.innerHTML = utc;
    12. }


    Nun soll die Tabelle immer die höchste Zahl oben anzeigen. Sie wird bisher so geordnet, dass die neuste Zeile oben ist.
    Es gibt viel zu Tabellen ordnen im Netz jedoch konnte ich das alles nicht so recht auf meinen Fall anwenden.

    Das einzige was dem nahe kam war dieser Hinweis:
    How To Sort a Table (w3schools.com)

    Ich weiß auch nicht ob es ein erweitertes Problem darstellt, dass bei meiner Tabelle immer neue Zeilen dazukommen....

    Wäre sehr froh, wenn Jemand Etwas helfen könnte. Danke LG
    Wo kommen denn die Werte für Deine Tabelle her?
    Eigentlich speichert man die Werte serverseitig in einer Datenbank und zieht sich aus den Daten den Highscore.

    Denke daran, dass HTML stateless ist.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Weiß nicht genau ob dir das was bringt, aber ich hatte damals einen komplizierten Weg dafür.

    Erstmal folgende Funktion zum Sortieren:

    Quellcode

    1. ​function Sorten(){
    2. $("#mylist li").sort(function(b, a) {
    3. return parseInt(a.id) - parseInt(b.id);
    4. }).each(function() {
    5. var elem = $(this);
    6. elem.remove();
    7. $(elem).appendTo("#mylist");
    8. });
    9. }


    Und #mylist hat dann verschiedene LI-Elemente gehabt.
    Diesen LI-Elementen habe ich ID's gegeben.

    Quellcode

    1. <li class="list-group-item" id="BTTList">


    Diese ID-Values habe ich dann mit den Werten beschrieben:

    Quellcode

    1. ​document.getElementById('BTTList').id = parseFloat(BTTNew).toFixed(2);


    Danach dann die Sort-Funktion aufgerufen und meine Tabelle war sortiert.

    Ist wahrscheinlich absurd, aber hat mir geholfen mehrspaltige Tabellen nach einer Spalte zu sortieren. Mein Problem war nämlich,
    dass es um Geld-werte ging und ich keine feste Zahl hatte anhand ich einfach hätte sortieren können.

    Ob das nun ein Rat ist, ich glaube nicht :D


    Meine Website:
    www.renebischof.de

    Meine erste App (Android):
    PartyPalooza
    @INOPIAE Die Werte kommen aus einem JS. Ja mit Datenbank wäre sicher optimal aber ich hab da sehr dran zu knabbern an das Thema. Deswegen wollte ich idealerweise die JS-Werte an PHP weitergeben und diese einfach in einer TXT speichern / abrufen.
    Sollte ja reichen weil es nur ein Name, Punkte und Datum ist.
    @xored oh okey danke ja ich muss mal schauen ob das mit meiner tabelle kompatibel ist :)