Ajax und senden von Formulardaten

Hallo,

seit gut 2 - 3 Wochen hänge ich am gleichen Problem fest: ein Formular, dessen Inhalt per Ajax gesendet werden soll.

Zuerst habe ich es wie folgt realisiert:

die Webseite beinhaltet ein (noch verstecktes JuiDialog). Per Klick auf einen Ajax-link wird ein Formular erzeugt und per Ajax in das JuiDialog geladen, das Dialog anschließend geöffnet.

Funktioniert super, aber wenn ich das Formular im Dialog absende gehen mehrere POST Requests raus. Die Zahl der POST Requests ist abhängig davon, wie oft das JuiDialog Fenster geöffnet und geschlossen wurde.

Diverse Tage, endlose Versuche und Stunden der Webrecherche später habe ich mich entschieden, das Formular nicht per Ajax nachzuladen, sondern schon im Dokument vorzuhalten.

Erst wenn der Nutzer die Formulardaten sendet, gehen diese per Ajax raus.

Hier schaukelt sich der Zahl der Post request nicht hoch. Stattdessen gehen immer 2 POST Requests raus: einer zur URL, die beim AjaxSubmitButton angegeben ist und einer zu der action, in welcher das Form gerendert wurde… warum auch immer?!? AArgh…

Nach Tagen voll Enttäuschungen und Misserfolgen frage ich mich nun:

warum haben nur (sehr wenige) andere ebenfalls Probleme mit dem Versenden von Formulardaten per Ajax?

Nutzt es kaum jemand oder ist meine Implementierung so fehlerhaft oder ist Yii an dieser Stelle buggy …

…oder prüft einfach der Großteil der Entwickler nicht, wie viele POST request raus gehen??

Gruß, rall0r

Ich würd Yii’s AJAX-Unterstützung nicht buggy nennen - aber für mich ist es nur für einfache Anwendungen geeignet. AJAX basiert eben nicht auf PHP sondern auf Javascript. Von daher kann ein PHP-Framework nur bis zu einem bestimmten Maße versuchen, passenden Javascript-Code zu generieren. Die Situation auf der Clientseite kann einfach zu komplex werden (siehe dein Problem mit den mehrfachen POSTs).

Mein Vorgehen daher: Yii-Komponenten verwenden, wo’s geht, und sie mit eigenem Javascript-Code “aufbohren” wo nötig. jQuery-Kenntnisse sind m.E. sowieso unerläßlich, wenn man eine reale AJAX-App erstellen will. Das hilft dann auch, die Yii-Clientscripts zu verstehen und auf eigene Bedürfnisse hinzubiegen.

Ja, vermutlich trifft’s das.

Zumindest habe ich auch schon erkannt, dass alles bestens funktioniert, so lange man sich an den Features orientiert, welche auch in den Tutorials besprochen werden.

Sobald man in der Abstaktionsebene etwas höher steigt, um mit den Objekten an anderer Stelle wieder in die Praxis herabzusinken wirds kniffelig.

Ich habe teils das Gefühl, dass dieses (vermutlich) recht junge Framework gerade dabei ist, den breiten Praxistest zu begehen und dabei viele Erkenntnisse sammelt.

Manchmal wünsche ich mir, dass dieses Framework ein robuster, alter Ochse ist…

…mit viel Erfahrung, bei dem letztlich all das geht, was man versucht zu erreichen.

Dann bin ich natürlich wieder froh, dass es doch kein verstaubtes Framework ist und Features unterstützt werden, von dem andere (alte Ochsen) noch weit entfernt sind, wie eben Ajax.

Der Preis ist dann Umsetzung in wechselhaften Ausführungen und Tiefen, was mich insbesondere dann trifft, wenn ich Wochen an einem Problem hänge, da ich versuche, dieses unbedingt per Yii zu lösen.

(um möglichst Konform zu bleiben)

Im Sinne von: wenn die Funktioalität von Yii angeboten wird, muss sie doch auch irgendwie sauber funktionieren.

Letztlich kam ich jetzt aber zu dem gleichen Schluss wie du:

Danke und Gruß,

rall0r