Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Ajax Request mit PHP Registry?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Ajax Request mit PHP Registry?

    Hallo, wir haben hier ein kleines Problem,

    und zwar versuchen wir mit Ajax einen Tabellen Sortieralgorithmus zu entwickeln, der ist nun auch entsprechend weit allerdings wurde die Sortiervariablen zuvor per Post an das PHP Script übergeben, ist ja bekannt das diese "Erneut Senden" meldung beim back-Button kommt.

    Das wollen wir nun irgendwie sinnvoll umgehen, erster Ansatz war ein Singleton Pattern, allerdings verliert das beim Neuladen des Inhalts alle Werte. Nun sind wir bei der Registry. Da verliert er die Daten aber auch ständig.

    Wir benutzen einen eigens entwickelten Frontcontroller mit Autoloader Funktion.

    Ist unsere Denkweise falsch oder ist das, dass normale Verhalten bei einem Ajax Request? Hat jemand Erfahrung damit b.z.w ist es überhaupt Möglich es auf unserem Wege zu machen?


  • #2
    Ich bin nicht ganz sicher ob ich das richtig verstehe.

    Seite A liefert per POST an Seite B eine Variable. Weitergearbeitet wird auf Seite B oder
    Seite B wird per AJAX (POST) in irgendeiner Form modifiziert?

    Eher die erste Variante, oder? Sonst würde das Browserverhalten (erneut senden) nicht auftreten...
    Muss der User aus irgendeinem best. Grund zurück auf "Seite A"?

    Kommentar


    • #3
      Zitat von tarian Beitrag anzeigen
      ... allerdings wurde die Sortiervariablen zuvor per Post an das PHP Script übergeben, ist ja bekannt das diese "Erneut Senden" meldung beim back-Button kommt.
      Post/Redirect/Get. Wenn die Sortiervaraible aber das einzige ist, was übergeben wird (allgemeiner, wenn keine Entitäten durch den POST angelegt, geändert oder gelöscht werden) dann sollte komplett auf POST verzichtet werden.

      Zitat von tarian Beitrag anzeigen
      Da verliert er die Daten aber auch ständig. ...
      ... ist das, dass normale Verhalten bei einem Ajax Request?
      Nein, es ist nicht normale, dass bei Ajax Daten ständig verloren werden,
      Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

      Kommentar


      • #4
        Wir haben in einer ruhigen Minute nochmal drüber nachgedacht. Unser Lösungsansatz kann nicht funktionieren da die Seite durch den Frontcontroller neu geladen wird. Selbstverständlich verliert die Registry alle Daten wenn die Seite komplett neu geladen wird.

        Einzige Lösungsmöglichkeit ist wohl doch die Session

        Kommentar


        • #5
          und was stört dich an der Session?

          Kommentar


          • #6
            Bin einfach kein Freund davon. Finde das sorgt bei größeren Projekten nur dafür das der Code unsauber wird: "Wieso über Codedesign nachdenken, ich pack die Variable in die Session und hab sie immer verfügbar."

            Kommentar


            • #7
              Mir ist unklar, was Ajax, eine Singleton/Registry-Architektur und das "POST-Daten bei F5 neu senden"-Verhalten jeweils miteinander zu tun haben sollen.

              Vielleicht versuchst du noch mal genau zu definieren, was ihr erreichen möchtet.

              Bei Ajax werden die Daten üblicherweise in Teilen clientseitig gehalten, sodass in vielen Fällen kein harter Reload notwendig ist.

              Kommentar


              • #8
                Ziel des ganzen ist es eine Tabelle (später mehrere) Sortierbar zu machen.

                1. Lösungsansatz: Einfach ein Request auf die Tabelle. Hat super geklappt alles wie gewünscht, beim Back-Button jedoch kam der "Erneut senden" Dialog hoch --> unerwünscht.

                2. Lösungsansatz: Wieder Request auf die Seite, das singleton sollte die Daten halten. Doch Daten waren weg.

                3. Lösungsansatz: Gleiches Szenario nur mit der Registry. Daten weg.


                Denke das ganze hat im Zusammenspiel mit dem Frontcontroller Probleme gegeben. Naja Thema erledigt.

                Kommentar


                • #9
                  Wieso sortiert ihr die Tabelle über POST-Daten und übergebt die Sortierkriterien nicht via GET?

                  Btw. HTTP ist Zustandslos, D.h. jeder Aufruf einer Webseite (HTTP-Request) lässt euer Script von Zeile 1 an neu laufen ohne jedwede Art von Daten außer:

                  1. den Session Daten
                  2. dem HTTP Request Header
                  3. den GET-Daten (?var=babc&var2=abc2)
                  4. den POST-Daten

                  Für euer Vorhaben scheint GET genau die richtige Datenquelle zu sein.
                  "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                  Kommentar


                  • #10
                    Die URL würde bei mehreren Tabellen zu lang, das wollten wir gerne verhindern.

                    Wir dachten die Registry wird vom Apache gehalten, und funktioniert Seitenübergreifend was natürlich quatsch ist.

                    Danke für die Hilfe

                    Kommentar


                    • #11
                      *doppelpost*

                      Kommentar


                      • #12
                        wieso denn die tabelle nciht einfach clientseitig sortieren?
                        apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                        Kommentar


                        • #13
                          Weil die tabelle noch weitere Funktionen bietet (blättern, Eingrenzen, Sortieren e.t.c) und anscheiend funktioniert es nicht. Ich selbst entwickel das besagte Modul nicht. Versuche nur Informationen einzuholen da das ganze im Moment das Vorankommen etwas behindert

                          Ich denke mein Kollege hat eine Lösung gefunden.

                          Kommentar

                          Lädt...
                          X