1. Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!
    Information ausblenden

Frage Sortierung

Dieses Thema im Forum "HTML, XHTML & CSS" wurde erstellt von udgesbou, 12 Februar 2018.

  1. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Grüß euch,
    ich bin es mal wieder :)

    Und zwar möchte ich gerne, dass auf einer Seite etwas automatisch nach oben sortiert wird, wenn ein Betrag davor steht. Es ist nicht wichtig, dass nach der Höhe der Beträge sortiert wird, sondern nur dass die Kunden vor denen ein Betrag steht oben und alle weiteren Kunden darunter stehen.

    Zur Klarstellung, es geht um eine Bediensoftware, die ihr hier erreicht. Benutzername: Forum ist auch gleich das Passwort.
    Dort habe ich unter "Theke" bereits zwei Bestellungen getätigt, nun möchte ich, dass diese beiden ganz oben stehen und alle anderen darunter, damit man sich quasi immer das Scrollen spart, da die Liste ja doch ganz schön lang ist.

    Ich hoffe ihr wisst was ich meine und könnt mir helfen, bei Fragen stehe ich natürlich jederzeit zu Verfügung.
    Anbei die waiter.html

    Grüße
     

    Anhänge:

    Werbung:

    Jetzt registrieren, damit diese Werbung verschwindet
  2. m.scatello

    m.scatello Aktives Mitglied

    Registriert seit:
    15 Februar 2017
    Beiträge:
    586
    Punkte für Erfolge:
    28
    Ich tippe mal auf ein "order by" bei der DB-Abfrage würde helfen. Ist aber nur geraten, da ich auf keinen Fall die Zip-Datei downloade und dann die relevante Stelle suchen werde.
     
  3. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Okay, danke schon einmal.
    Liegt das aber daran, dass es eine .zip-Datei ist oder weil du keine Lust hast?:p

    Grüße
     
  4. basti1012

    basti1012 Aktives Mitglied

    Registriert seit:
    26 November 2017
    Beiträge:
    232
    Punkte für Erfolge:
    28
    In zips können sich Viren gemühtlich machen . Kopiere doch den Code und poste ihn dann.Ich habe den Zip auch nicht runter geladen. Nix gegen dir ,aber mache ich auch nicht.
     
  5. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Kein Problem, habe mich auch schon gewundert, dass man hier .zip-Dateien als Anhang senden kann :p

    Habe hier unter diesem Link mal den Quellcode zur Verfügung gestellt, hoffe das ist so in Ordnung?

    Gruß
     
  6. m.scatello

    m.scatello Aktives Mitglied

    Registriert seit:
    15 Februar 2017
    Beiträge:
    586
    Punkte für Erfolge:
    28
    Glaubst du jetzt wirklich, dass sich jemand diese Buchstabenwüste genauer ansieht?
     
  7. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Vielleicht kann mir jemand einen Tipp geben, wie ich das ganze besser hochladen kann?

    Grüße
     
  8. m.scatello

    m.scatello Aktives Mitglied

    Registriert seit:
    15 Februar 2017
    Beiträge:
    586
    Punkte für Erfolge:
    28
    Das Problem, so wie es aussieht, liegt darin, dass du wohl ein CMS oder sonstwas einsetzt und dass da kein reiner PHP-Quellcode ist, den man sich ansehen kann.
     
  9. basti1012

    basti1012 Aktives Mitglied

    Registriert seit:
    26 November 2017
    Beiträge:
    232
    Punkte für Erfolge:
    28
    Ich muß gestehen das ich von CMS und sowas keine ahnung habe.Aber kann man den für die Sortier funktion nicht Javascript oder Php verwenden?.
     
  10. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Dacht auch an etwas von Java oder Php.
    Javascript wird ja sowieso verwendet.

    Grüße
     
  11. basti1012

    basti1012 Aktives Mitglied

    Registriert seit:
    26 November 2017
    Beiträge:
    232
    Punkte für Erfolge:
    28
    Mit Javascript läst sich das ja eigentlich leicht umsetzten .Php wohl auch .
    Du schreibst was von bediensoftware .Ist das sowas wie bei mc donalds wo die Leute an kasse stehen und die bestellungen abarbeiten? Soll die Seite auch Online verfügbar sein? Man muss dann ja auch bedenken das man dann mit Javascript vorsichtig sein sollte weil das ist leicht manipulirbar.
     
  12. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Ja so in der Art. Bestellungen können von so gut wie jedem Gerät erfasst werden.
    Online verfügbar ist es nicht, das ganze ist in der Echtanwendung nur lokal, sprich der Sicherheitsaspekt ist nicht so wichtig.

    Der Link im ersten Beitrag führt nur zur Testumgebung ;)


    Grüße
     
  13. Sempervivum

    Sempervivum Aktives Mitglied

    Registriert seit:
    18 Oktober 2016
    Beiträge:
    914
    Punkte für Erfolge:
    43
    Das Voranstellen ist weniger das Problem, das macht diese Funktion:
    Code (text):
    1. function arrangeitems() {
    2.         var cont = $("#tablepanelcontent");
    3.         var items = cont.find(".tableelement").get().reverse();
    4.         items.forEach(function(item, idx) {
    5.             var open = $(item).find(".tableopen");
    6.             if (open.length > 0) {
    7.                 console.log(open.text());
    8.                 cont.prepend($(item));
    9.             }
    10.         });
    11. }
    Trage diese Funktion in Zeile 28 ein, so dass es so aussieht:
    Code (text):
    1.     <link rel="stylesheet" href="php/3rdparty/jqueryui1-12-0/jquery-ui.min.css" />
    2.     <script src="php/3rdparty/jquery-2.2.4.min.js"></script>
    3.     <script src="php/3rdparty/jqueryui1-12-0/jquery-ui.min.js"></script>
    4.    <script src="elements/tablemap.js"></script>
    5.    <script src="elements/grouping.js"></script>
    6.    <script src="utilities.js"></script>
    7.    <script src="receiptutils.js"></script>
    8.   <script>
    9. function arrangeitems() {
    10.         var cont = $("#tablepanelcontent");
    11.         var items = cont.find(".tableelement").get().reverse();
    12.         items.forEach(function(item, idx) {
    13.             var open = $(item).find(".tableopen");
    14.             if (open.length > 0) {
    15.                 console.log(open.text());
    16.                 cont.prepend($(item));
    17.             }
    18.         });
    19. }
    20.    <script>
    21. function sendNewOrders(b){var a=getTableid();if(neworders.lengt
    Dann suche diesen Code in dem langen, kryptischen Javascript darunter (Zeile 30):
    Code (text):
    1. $("#tablepanelcontent").html(a)}else{$("#tablepanelcontent").html("")
    und ergänze darin den Aufruf der obigen Funktion:
    Code (text):
    1. $("#tablepanelcontent").html(a);arrangeitems();}else{$("#tablepanelcontent").html("")
    Wenn das man klappt ...
    Die Funktion habe ich mit Userskript getestet, aber den Aufruf konnte ich nicht testen.
    Lade es auf jeden Fall auf deine Testseite hoch, damit man es untersuchen kann, wenn es nicht funktioniert.
     
  14. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Danke dir schonmal. Nur finde ich nicht, wo ich das genau eintragen soll.
    Die Zeile 28 ist bei mir eine "}"?
    Auch finde ich die Scriptkonstelation so in meiner "waiter.html" nicht.

    Grüße
     
  15. Sempervivum

    Sempervivum Aktives Mitglied

    Registriert seit:
    18 Oktober 2016
    Beiträge:
    914
    Punkte für Erfolge:
    43
    Wenn ich mich angemeldet habe, komme ich auf diese Seite:
    http://nicht-bummeln.de/oseck/waiterdesktop.php?v=1.5.1
    Möglicher Weise ist das Problem, dass ich Desktop beim Einloggen gewählt habe.
    Möglicher Weise ist auch das Javascript doppelt, einmal in der js-Datei und einmal in waiterdesktop.php. Aber darum kümmern wir uns später, erst Mal sehen, dass das Skript läuft.
     
  16. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Ich habe das ganze hoffentlich richtig in die waiterdesktop.php eingefügt.
    Allerdings funktioniert das glaube ich nicht so wie gewollt oder?

    Die Desktopoberfläche wird aber sowieso so gut wie nie genutzt, aber vom Verfahren her ist das ja das gleiche.

    Grüße
     
  17. Sempervivum

    Sempervivum Aktives Mitglied

    Registriert seit:
    18 Oktober 2016
    Beiträge:
    914
    Punkte für Erfolge:
    43
    Ups, da ist mir selber ein Fehler unterlaufen, da fehlt ein </script>. So müsste es richtig sein:
    Code (text):
    1.     <link rel="stylesheet" href="php/3rdparty/jqueryui1-12-0/jquery-ui.min.css" />
    2.     <script src="php/3rdparty/jquery-2.2.4.min.js"></script>
    3.     <script src="php/3rdparty/jqueryui1-12-0/jquery-ui.min.js"></script>
    4.    <script src="elements/tablemap.js"></script>
    5.    <script src="elements/grouping.js"></script>
    6.    <script src="utilities.js"></script>
    7.    <script src="receiptutils.js"></script>
    8.   <script>
    9. function arrangeitems() {
    10.         var cont = $("#tablepanelcontent");
    11.         var items = cont.find(".tableelement").get().reverse();
    12.         items.forEach(function(item, idx) {
    13.             var open = $(item).find(".tableopen");
    14.             if (open.length > 0) {
    15.                 console.log(open.text());
    16.                 cont.prepend($(item));
    17.             }
    18.         });
    19. }
    20. </script>
    21.    <script>
    22. function sendNewOrders(b){var a=getTableid();if(neworders.lengt
     
  18. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Habe jetzt zusammen mit dem Entwickler eine leitere Möglichkeit gefunden.
    In der Datei roomtables.php habe ich im Bereich:
    PHP:
    1. $sql = "SELECT %resttables%.id as id,%resttables%.tableno as name,%resttables%.sorting as sorting,IFNULL(SUM(IF(%queue%.ordertime is not null AND %queue%.paidtime is null AND %queue%.isclosed is null,%queue%.price,0.00)),0.00) as pricesum FROM %resttables% ";
    2.             $sql .= " LEFT OUTER JOIN %queue% ON %queue%.tablenr=%resttables%.id WHERE %resttables%.removed is null AND active='1' AND ";
    3.             $sql .= " %resttables%.roomid=? GROUP BY %resttables%.id,name ORDER BY pricesum DESC, %resttables%.sorting";
    das ganze um "ORDER BY pricesum" ergänzt. Jetzt wird alles wie gewünscht sortiert.

    Allerdings hätte ich das ganze gerne nur für "Theke", bei "Stube" und "Außen" soll alles normal sortiert werden.
    Gibt es da vielleicht eine Möglichkeit, dass die Sortierung nur für "Theke" greift?


    Grüße
     
  19. m.scatello

    m.scatello Aktives Mitglied

    Registriert seit:
    15 Februar 2017
    Beiträge:
    586
    Punkte für Erfolge:
    28
    Ja. Und damit wäre deine Frage korrekt beantwortet. :p

    Du musst doch wissen, ob es sich gerade um Theke, Stube, etc. handelt. Also kannst du doch auch die SQL-Abfrage entsprechend steuer.

    PHP:
    1. if ($blub == "Theke")
    2.    $sql = "Select .....";
    3. else
    4.   $sql = "Select.....";
     
  20. udgesbou

    udgesbou Neues Mitglied

    Registriert seit:
    13 September 2017
    Beiträge:
    24
    Punkte für Erfolge:
    1
    Das dann einfach darunter einfügen?


    Grüße