Auge: jQuery Formular abschicken & wieder einbleden

Beitrag lesen

Hallo

Ich versuche das mal ohne Code in der Reihenfolge des Abläufe darzustellen.

##Absenden mit Ajax

  • Der Benutzer drückt den Submit-Button.
  • Das JS-Skript prüft daraufhin die Eingaben clientseitig (Vollständigkeit, evtl. Fehleingaben). Wir brauchen hier nur den Erfolgsfall betrachten.
  • Das JS-Skript erstellt im Erfolgsfall einen Datensatz, der an ein PHP-Skript gesendet wird.
  • Das PHP-Skript prüft die übermittelten Daten der Formulareingaben erneut und richtig™. Jetzt kommt die Verzweigung!
    • Die Eingaben sind vollständig: speichern der Daten, versenden der Email, Rückgabe einer Erfolgsmeldung an das JS-Skript (Fehlercode, Text).
    • Die Eingaben sind unvollständig oder (teilweise) falsch: kein speichern der Daten, kein Versand einer Email aber Rückgabe der Meldung über die Fehleingabe(n) (Fehlercode, Text).
  • Das JS-Skript empfängt die Rückgabe aus dem PHP-Skript und entscheidet über die bloße Ausgabe der Erfolgsmeldung oder den Hinweis auf Fehleingabe(n).

##Absenden ohne Ajax

  • Der Benutzer drückt den Submit-Button.
  • Der Inhalt des Formulars wird an ein PHP-Skript gesendet.
  • Das PHP-Skript prüft die übermittelten Daten der Formulareingaben. Auch hier kommt die Verzweigung.
    • Die Eingaben sind vollständig: speichern der Daten, versenden der Email, Rückgabe einer Erfolgsmeldung als neu ausgelieferte Seite.
    • Die Eingaben sind unvollständig oder (teilweise) falsch: kein speichern der Daten, kein Versand einer Email. Rückgabe der Meldung über die Fehleingabe(n) als erneute Auslieferung des Formulars mit Hinweisen auf zu korrigierende Felder.

Schlussfolgerungen

Im Browser gibt es keine Unterschiede bis auf die eventuell nicht stattfindende Ausführung des JS-Skripts. Der Unterschied ist die Behandlung der Formulareingaben auf dem Server. Gleich ist die Prüfung der Eingaben an sich und die Aktionen speichern und E-Mail versenden. Unterschiedlich ist die Entgegennahme der Daten und die Art der Rückgabe an den Benutzer/Browser. Es gibt also Teile des PHP-Codes, die in beiden Fällen benutzt werden und welche, die bei einer Art des Versands benutzt, bei der anderen Art aber nicht benutzt werden.

An der Stelle lohnt es sich, über die Ansprache zweier Skripte nachzudenken, die ihrerseits auf identische Codeteile in einem weiteren Skript zugreifen (Auslagerung von Code in Funktionen oder Aufruf des gemeinsam genutzten Codes über require_once).

Tschö, Auge

--
Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
Terry Pratchett, „Gevatter Tod“