Statusanzeige, Statusänderung mit php

  • Guten zusammen,

    ich würde gerne eine Statusänderung/Statusanzeige realisieren.


    Immerhin habe ich es soweit hinbekommen das wenn ich die Checkbox anhake und auf Update Data gehe, er mir den Wert in die DB schreibt.


    Er aktualisiert allerdings erst nach einem Reload der Seite. Das gefällt mir nicht wirklich. Ich habe aber nicht gefunden warum, weshalb, wieso. -.-

    Den Header alle x sec neu zu laden fand ich nicht so prickelnd.

    Zum einen wäre ich hier für Tipps schon dankbar aber auch für andere Ideen. :)


    html-seminar.de/woltlab/attachment/3171/


    Der Formularcode:

    Der php Code:

  • Hey Franky,


    kannst du mal bitte die Reihenfolge deiner Datenbankaktionen mit uns teilen?


    Es kann gut sein, dass du die Datenbankaktionen in folgender Reihenfolge hast:

    • Select
    • Update
    • Insert

    Dort tritt es auf, dass Select vor allen beiden anderen Datenbankaktionen ausgeführt wird und die Änderungen dann erst mitbekommt, wenn die Seite nochmal neu geladen wird.


    Prüfe das bitte mal.


    Mit folgender Reihenfolge sollte es ohne Probleme gehen:

    • Insert
    • Update
    • Select (immer als letztes)


    Schöne Grüße,
    Stef

  • Oder gleich auf Ajax umstellen, dann aktualisiert er das ohne Seiten-Reload.

    Jetzt hast du alles in eine Datei (Affenformular), oder?

    Wie Stef schon sagte, hast du wahrscheinlich die rein folge falsch,

  • Hallo Stef, aber gerne doch, obwohl es bestimmt peinlich wird :D

    meine Abfrage:

    Sieht danach aus das es genau so ist wie du schon vermutet hattest.

    So. Nun das Formular:


    Ich gehe mal davon aus, dass das foreachschleifchen in meine pizzaactionupdatedb.php gehört oder integriert werden kann?


    Oder gleich auf Ajax umstellen, dann aktualisiert er das ohne Seiten-Reload.

    Jetzt hast du alles in eine Datei (Affenformular), oder?

    Wie Stef schon sagte, hast du wahrscheinlich die rein folge falsch,

    Basti....du siehst doch was ich hier poste und dann willste mir nun noch Ajax aufdrücken? :D

    Ne, schau ich mir gerne mal an. Ist mir namendlich natürlich schon das ein oder andere mal über den Monitor gelaufen.

    Hättest du da en Bsp?


    Wie du bestimmt siehst ist es wohl ne Mischung aus Affenformular und include :D


    Ich hab heute Morgen auch schon versucht das hin und her und her und hin zu schieben aber es möchte noch nicht.


    Muss mal sehen ob das heute Morgen noch was wird oder heute Mittag. Die Zeit die fliegt ja nur so vorm Monitor.


    Danke euch schonmal. :)

  • Ja, wie man sieht, führst du immer erst das SELECT aus,

    Wenn du jetzt Update klickst , rufst du die Seite neu auf.

    Es wird erst das SELECT gemacht, dann dein Update.

    Ohne jetzt großartig was dran zu ändern , sollte das eigentlich reichen die Reihenfolge zu tauschen

    In dein fall, würde sich Ajax leicht umsetzen lassen.

    Bei einer Änderung der Checkbox, brauch ja nur ein Request mit der ID und den Checkbox Status gesendet werden.

    Da du für jede Zeile ein Button hast, brauch man auch nur den Checkbox Status der einen ID zurückgeben.


    Du könntest auch nur ein Button für alle Zeilen erstellen.

    Dann werden erst alle Checkboxen ausgelesen und dann alles in Request versendet.

    Wenn du 30 Zeilen hast, musst du jetzt 30-mal die Seite neu laden, wegen den Affenformular.

    Mit Ajax geht das alles mit ein Request

  • Mensch, vielen Dank basti un Stef, ja klar geht es nun.


    In meinem Bestellformular, habe ich die Select Abfrage auch über der Anweisung und da funktioniert es. Deswegen dachte ich das ist richtig so :D

    Vermutlich weil es da per INSERT in die DB geht?


    Ok, nochmal was gelernt.


    Also Ajax sagst du.....du machst mich fertig :D

    Ich bemüh mal google und co wieder und melde mich entweder mit grauen Haaren oder einer Erfolgsmeldung zurück :D


    Das Ajax hört sich sauberer und "einfacher äh ne, zukunftssicherer" an.

  • Wenn du 30 Zeilen hast, musst du jetzt 30-mal die Seite neu laden, wegen den Affenformular.

    Das bekommt man auch mit einmal neu laden und einem Affenformular hin, ich sehe sowieso keinen Sinn darin, n-mal ein Formular in die Seite einzubauen.


    Und "Select *" bitte nicht verwenden, immer die Spalten aufzählen, die man wirklich haben will.

  • Ei Caramba -.-


    Müde, abgekämpft und seh vor lauter Code die Bäume, alias die Lösung nicht mehr.


    Ich hab das nun mal versucht umzusetzen und alles in ein Formular zunächst gepackt.


    Er macht soweit was er soll.

    Ich kann per Ajax (hoffe ich) nun die Checkboxen auswählen sogar mit Select All :D und mit nur noch einem Button absenden.


    Ich hoffe da mal soweit alles halbrichtig gemacht zu haben.


    Was mir noch nicht so gefällt ist das ich nur Werte in Zahlenform übergeben und anzeigen kann.

    Jemand von euch weiß da bestimmt auf Anhieb Rat und ich wäre auch dankbar dafür. :)


    Am allerliebsten wäre mir so ein Badge für den Status html-seminar.de/woltlab/attachment/3178/html-seminar.de/woltlab/attachment/3178/

    Wie ich das hinbekommen soll weiß ich im Moment absolut gar nicht.


    m.scatello

    Code
    "SELECT id,created_at,Kundennr,Pizza,Belag,inarbeit from xxx.pizzabestellung ORDER BY created_at DESC";

    ;)


    Kein Sternchen mehr.


    So nun seid nicht zu hart, ich hab mich echt bemüht. :D


    html-seminar.de/woltlab/attachment/3179/

  • Eine checkbox hat ja auch kein Text .

    Wenn du aber für an und aus Text haben willst dann ändere es doch einfach in der Ausgabe.

    PHP
    $inarbeit = $row['inarbeit'];
    if($inarbeit==1){
         $inarbeit='Primary';
    }else{
         $inarbeit='Was anderes';
    }

    Auserdem solltest du beim erstellen der Tabelle auch gleich gescheckte boxen angelickt lassen.

    ungefähr so

    EDIT:

    Zeile 65 musst du in deinen Code die Checkbox schließen. da fehlt ein >

  • Was mir beim Betrachten des Screenshots auf fällt, ist, dass da Redundanz drin ist: Die ersten drei Zeilen gehören offensichtlich zu der selben Pizza und die Inhalte der ersten drei Spalten sind gleich.

  • Was mir beim Betrachten des Screenshots auf fällt, ist, dass da Redundanz drin ist: Die ersten drei Zeilen gehören offensichtlich zu der selben Pizza und die Inhalte der ersten drei Spalten sind gleich.

    Genau. Er schreibt für jeden Belag einen Eintrag. Da bin ich zunächst mal hingekommen weil man ja nicht mehrere Einträge in eine Spalte schreiben soll.


    Redundanz sollte man allerdings auch vermeiden ne? -.-


    En Tipp?


    basti1012

    Thanks!

  • Zitat

    Er schreibt für jeden Belag einen Eintrag. Da bin ich zunächst mal hingekommen weil man ja nicht mehrere Einträge in eine Spalte schreiben soll.

    Das habe ich mir schon gedacht, ich konnte mich dunkel daran erinnern. Dann hätten wir mal wieder das Ergebnis einer Strategie "Alles oder nichts" - Es werden Maximalforderungen gestellt mit dem Ergebnis, dass am Schluss gar nichts passiert. Maria-DB und MySQL unterstützen beide den Datentypen JSON - kein Grund, pauschal abzulehnen, hier mehrere Werte einzutragen.

    https://dev.mysql.com/doc/refm…red%20in%20JSON%20columns.

    https://mariadb.com/kb/en/json-data-type/

  • :D Das war jetzt weniger auf dich sondern mehr auf die Helfer hier bezogen.

    Du könntest aber auch das ganze Array als JSON speichern, doch da weiß ich nicht, ob du das schon kannst.

    Kannst dich da ja mal einlesen

    https://www.php.net/manual/de/function.json-decode.php

    https://www.php.net/manual/de/function.json-encode.php

    Doch meine Schuld :D :wacko:


    Basti hatte das im Zusammenhang mit dem speichern mehrerer Werte, damals Auswahl Autos/Teile in dem anderen Thread schonmal erwähnt.

    :thumbup:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!