Progressive Enhancement AJAX-Affenformular?

  • Heyho,
    mir ist da mal was aufgefallen und ich wollte nacgfragen, ob da wer anders vielleicht eine Idee hat.


    Folgendes Szenario:
    Man hat eine funktionierende Seite, vollkommen ohne JavaScript, nur HTML und PHP. Sämtliche Formulare darin fungieren als Affenformulare, wie, sei dahingestellt.
    Hier will ich nun als Progressive Enhancement AJAX aufsetzen, aus Speicher- und Performancegründen soll es aber nur ein Script sein, was auf alle Formulare anspringt (siehe jQuery AJAX). Bestenfalls sollte keine zusätzliche Auszeichnung im bereits bestehenden Code nötig sein.


    Wie mache ich das? Ich habe zwei Ansätze gefunden, die allerdings entweder kein JS zulassen oder aber von JS abhängen. Also beides kein Progressive Enhancement.
    Ich habe ehrlich gesagt keine Ahnung, wie das gehen könnte :D


    Die typischen Affenformularhinweise sollten auch weiterhin mit ausgegeben werden, also sowas wie "Name zu kurz", oÄ.

  • Was verstehst du unter "keine zusätzliche Auszeichnung im bereits bestehenden Code"?
    Du wirst wohl nicht drum rum kommen, zumindest den PHP-Code (leicht) abzuaendern.
    Ich wuerde das ganze wohl so loesen:
    - normales Affenformular aufbauen, Formularhinweise und Co. in ein Array mit entsprechender Struktur speichern, diese Hinweise entsprechend im Formular ausgeben falls vorhanden
    - beim Absenden via Ajax einen zusaetzlichen Parameter setzen, der vom Formular sonst nicht gesetzt wird
    - diesen Parameter im PHP-Code vor der erneuten Ausgabe des Formulars abfragen, falls vorhanden das aufgebaute Fehlerarray zurueckgeben und exit;
    - das Array dann per Javascript weiter auswerten und die Fehlermeldungen entsprechend dem Formular hinzufuegen


    So kannst du das Formular normal ohne Ajax absenden, die Seite wird neu geladen und das Formular wieder mit Hinweisen dargestellt, kannst aber auch einen POST-Request an die gleiche Seite mit gesetztem Ajax-Parameter senden und statt dass das Formular ausgegeben wird wird das entsprechende Array zurueckgegeben. Die entsprechende URL wo der Ajax-Request hingesendet werden soll kannst du ja aus dem action-Attribut des abgesendeten Formulars ziehen.

Jetzt mitmachen!

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