Sortieren einer Tabelle per JS mit Daten aus MYSQL Datenbank

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sortieren einer Tabelle per JS mit Daten aus MYSQL Datenbank

    Ich möchte in meinem Formular die Tabelle per klick auf die Spaltenköpfe (buttons) sortieren. Meine Idee war es das Wort "id" aus dieser Zeile durch die jeweiligen Namen der angeklickten Spaltenköpfe zu ersetzen:

    Quellcode

    1. $abfrage = "SELECT * FROM bestellung ORDER BY id DESC";

    Klickt man also auf den Spaltenkopf "Name" ändert JS die Zeile in folgendes um:

    Quellcode

    1. $abfrage = "SELECT * FROM bestellung ORDER BY name DESC";


    Ich weiß aber nicht wie ich die PHP Variable per JS ändern kann. Oder ob es nicht sogar einen besseren Weg gibt.

    Ich habe mein Script mal angehängt.

    Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. "http://www.w3.org/TR/html4/loose.dtd">
    3. <html>
    4. <head>
    5. <meta Name="keywords" content="">
    6. <title>Kundenbestellung</title>
    7. <link rel="stylesheet" type="text/css" href="jp.css">
    8. </head>
    9. <body>
    10. <!-- *********************************************** Formular *********************************************** -->
    11. <form method="post" action="Jerry.html" Name="kundenbestellung" onreset="return ResetCheck()">
    12. <div><img src="jp.gif" style="width: 100px; position: absolute; left: 600px;"></div>
    13. <div style="width: 520px;" class="right" >
    14. <select Name="Formular" style="width: 110px;" onchange="setValue(this)">
    15. <option value="bestellung" <?php if ($_POST['Formular'] == "bestellung") {echo "selected";} ?>>Bestellung</option>
    16. <option value="reklamation" <?php if ($_POST['Formular'] == "reklmamation") {echo "selected";} ?>>Reklamation</option>
    17. </select>
    18. </div>
    19. <div style="font-size: 18px;">K U N D E N B E S T E L L U N G</div><br>
    20. <div style="font-size: 18px;">Bestellung verwalten:</div><br>
    21. <div style="font-size: 14px;">Momentane Sortierung:</div>
    22. <br>
    23. <table style="text-align: center;">
    24. <tr>
    25. <td class="bold"><input type="button" value=" Anrede " style="width: 100%; background-color: #bbb;"></td>
    26. <td class="bold"><input type="button" value=" Name " style="width: 100%; background-color: #bbb;"></td>
    27. <td class="bold"><input type="button" value=" zuschicken? " style="width: 100%; background-color: #bbb;"></td>
    28. <td class="bold"><input type="button" value=" Marke " style="width: 100%; background-color: #bbb;"></td>
    29. <td class="bold"><input type="button" value=" Id-Nummer " style="width: 100%; background-color: #bbb;"></td>
    30. <td class="bold"><input type="button" value=" Artikel " style="width: 100%; background-color: #bbb;"></td>
    31. <td class="bold"><input type="button" value=" Weite " style="width: 100%; background-color: #bbb;"></td>
    32. <td class="bold"><input type="button" value=" L&auml;nge " style="width: 100%; background-color: #bbb;"></td>
    33. <td class="bold"><input type="button" value=" Menge " style="width: 100%; background-color: #bbb;"></td>
    34. <td class="bold"><input type="button" value=" Bestellt am " style="width: 100%; background-color: #bbb;"></td>
    35. </tr>
    36. <tr>
    37. <td>
    38. <?
    39. // VERBINDUNG*****************************************************************************************************************
    40. $verbindung = mysql_connect ("localhost", "d00f19fd","jpkunde") or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
    41. mysql_select_db("d00f19fd") or die ("Die Datenbank existiert nicht.");
    42. $abfrage = "SELECT * FROM bestellung ORDER BY id DESC";
    43. $ergebnis = mysql_query($abfrage);
    44. while($row = mysql_fetch_object($ergebnis))
    45. {
    46. echo "
    47. <tr style=\"background-color: #FFF;\">
    48. <td class=\"b1 bold pad\">".$row->anrede."</td>
    49. <td class=\"b1 bold pad\">".$row->name."</td>
    50. <td class=\"b1 bold pad\">".$row->zuschicken."</td>
    51. <td class=\"b1 bold pad\">".$row->marke."</td>
    52. <td class=\"b1 bold pad\">".$row->idnr."</td>
    53. <td class=\"b1 bold pad\">".$row->artikel."</td>
    54. <td class=\"b1 bold pad\">".$row->weite."</td>
    55. <td class=\"b1 bold pad\">".$row->laenge."</td>
    56. <td class=\"b1 bold pad\">".$row->menge."</td>
    57. <td class=\"b1 bold pad\">".$row->bestelltam."</td>
    58. </tr>
    59. ";
    60. }
    61. ?>
    62. </table>
    63. </body>
    64. </html>
    Alles anzeigen
  • Wo bleibt das Problem? ;)
    Du kannst die Daten entweder per POST übergeben, oder aber via GET Parameter als Link. Dann kommst du auch nicht in das Problem, dass Benennung und Spaltennamen der selbe sein muss.
    Übrigens solltest du den Spaltennamen validieren. Zum Beispiel nur kleinbuchstaben von a-z erlauben

    Quellcode

    1. preg_match('/^[a-z]+$/', $col)