2011-01-12 9 views
0

Alle meine Formulare reichen zu einem PHP-Skript von Ajax. das PHP-Skript wie ein Controller.Einige Designentscheidungen, Könnten Sie mir einen Rat geben?

Ich denke, das könnte benutzerfreundlicher sein. Wenn etwas schief geht, muss der Benutzer die aktuelle Seite nicht verlassen.

aber ich sehe keine Website auf diese Weise.

er Nachteil ist die PHP-Laufzeit muss zweimal laden: eine im Buchungsprozess. eine für das Ergebnis.

+1

Es gibt viele Websites, die es auf diese Art und Weise zu tun, aber das Potenzial Nachteil ist, dass, wenn JS ist ausgeschaltet, es wird nicht mehr funktionieren. Was ist deine Frage genau? –

+0

Die zwei Serveranforderungen können nicht vermieden werden: Man muss das Formular laden, die zweite, um den Post zu verarbeiten (ob durch AJAX oder mit Seitenübergang). Natürlich muss Ihr Server bei AJAX keine while-Seite neu erstellen, um zu antworten, sondern nur die Daten zurücksenden, die für die Verarbeitung auf Ihrem clientseitigen JavaScript erforderlich sind (Anzeige ok, Fehler, Aktualisierung betroffener Teile der Seite usw.). Aber wie @Pekka darauf anspielt, ist die beste Vorgehensweise, ein Formular für den standardmäßigen "Seitenübergangs" -Beitrag bereitzustellen und JavaScript das Übermittlungsverhalten zu überschreiben. Dann werden alle, auch nicht-js Benutzer - behandelt. –

+0

@David. Alle meine Formulare werden auf Ajax-Art verarbeitet, sogar der "Seitenübergang" -Post. In "page-transition" post, das Ajax-Ergebnis nur eine Verknüpfung zu der neuen Ansicht. – lovespring

Antwort

1

Zuerst, wie Pekka kommentierte, gibt es viele Websites, die Ajax-Technik verwenden, um ein Formular einzureichen.

Wenn ich deine Frage richtig interpretiert, in der Regel, ich denke, die besten asynch Muster das "Form Problem", konstruktiv zu lösen ist dies:

=> HTML-Formular

=> default einreichen Ereignis gestoppt von JS

=> JS Client überprüft (zB E-Mail/Telefon) Validierung

=> ajax-Aufruf zu einem Backend-Skript (pHP, Java, Rubin, usw.) - es ist nur einmal lädt!

=> serverüberprüft, „Echo“ eine Antwort

=> Ajax-Aufruf Antwort von JS behandelt

+0

selbst im Beitrag "page-transition", postest du noch auf ajax controller? – lovespring

+0

"Seitenübergangs" -Post kann an einen anderen Controller oder an denselben Ajax-Controller gesendet werden, der möglicherweise eine vollständige Seitenantwort generiert (d. H. Wenn ein Parameter an diesen übergeben wird). – stecb

Verwandte Themen