2011-01-12 16 views
0

すべての私のフォームは、AjaxでPHPスクリプトに提出します。ちょうどコントローラのようなPHPスクリプト。いくつかの設計上の決定事項、いくつかのアドバイスをいただけますか?

これはユーザーフレンドリーであると思います。何か問題が生じた場合、ユーザーは現在のページから離れる必要はありません。

しかし、このようなウェブサイトはありません。

彼は、PHPのランタイムは2回読み込まなければならないという欠点があります.1つは投稿プロセスです。 1つは結果を表示するためです。

+1

によって処理応答

=> AJAX呼び出し応答を、「エコー」それはもはや動作しません。あなたの質問は何ですか? –

+0

2つのサーバー要求を回避することはできません。フォームをロードする必要があり、2番目がポストを処理する必要があります(AJAXかページ遷移かにかかわらず)。もちろん、AJAXでは、サーバーは応答するためにページを再構築する必要はなく、処理するクライアントサイドのJavaScriptに必要なデータのみを返信するだけです(OK、エラー、ページの影響部分の更新など)。しかし、@Pekkaのように、ベストプラクティスは、標準的な "ページ遷移"ポストのフォームを提供し、javascriptが送信動作をオーバーライドできるようにすることです。その後、誰もが、js以外のユーザーであっても処理されます。 –

+0

@ David。私のフォームはAjaxの方法で処理され、たとえ "ページ遷移"の投稿であっても。 「ページ遷移」ポストでは、ajaxは新しいビューへのリンクにすぎません。 – lovespring

答えて

1

まず、Pekkaがコメントしたように、フォームを送信するためにajax技術を使用する多くのウェブサイトがあります。

私が正しくあなたの質問を解釈する場合は、通常、私はデザイン面で「フォームの問題」を解決するための最良の非同期パターンは、このだと思う:

=> HTMLフォーム

=>デフォルトイベントを提出JS

バックエンドのスクリプトへ

=> JSクライアントチェック(すなわち、電子メール/電話)の検証

=> AJAX呼び出し(PHP、Javaの、ルビー、など)によって停止 - それは一度だけロードされます!

=>サーバーサイドチェックし、存在し、このようにそれを行うウェブサイトの多くがありますが、潜在的な欠点はJSであればということであるJS

+0

"ページ遷移"の投稿でも、あなたはまだajaxコントローラに投稿しますか? – lovespring

+0

「ページ遷移」ポストは、別のコントローラ、またはフルページ応答を生成する可能性のある同じAjaxコントローラ(つまり、パラメータが渡された場合)に送信できます。 – stecb

関連する問題