すべての私のフォームは、AjaxでPHPスクリプトに提出します。ちょうどコントローラのようなPHPスクリプト。いくつかの設計上の決定事項、いくつかのアドバイスをいただけますか?
これはユーザーフレンドリーであると思います。何か問題が生じた場合、ユーザーは現在のページから離れる必要はありません。
しかし、このようなウェブサイトはありません。
彼は、PHPのランタイムは2回読み込まなければならないという欠点があります.1つは投稿プロセスです。 1つは結果を表示するためです。
すべての私のフォームは、AjaxでPHPスクリプトに提出します。ちょうどコントローラのようなPHPスクリプト。いくつかの設計上の決定事項、いくつかのアドバイスをいただけますか?
これはユーザーフレンドリーであると思います。何か問題が生じた場合、ユーザーは現在のページから離れる必要はありません。
しかし、このようなウェブサイトはありません。
彼は、PHPのランタイムは2回読み込まなければならないという欠点があります.1つは投稿プロセスです。 1つは結果を表示するためです。
まず、Pekkaがコメントしたように、フォームを送信するためにajax技術を使用する多くのウェブサイトがあります。
私が正しくあなたの質問を解釈する場合は、通常、私はデザイン面で「フォームの問題」を解決するための最良の非同期パターンは、このだと思う:
=> HTMLフォーム
=>デフォルトイベントを提出JS
バックエンドのスクリプトへ=> JSクライアントチェック(すなわち、電子メール/電話)の検証
=> AJAX呼び出し(PHP、Javaの、ルビー、など)によって停止 - それは一度だけロードされます!
=>サーバーサイドチェックし、存在し、このようにそれを行うウェブサイトの多くがありますが、潜在的な欠点はJSであればということであるJS
"ページ遷移"の投稿でも、あなたはまだajaxコントローラに投稿しますか? – lovespring
「ページ遷移」ポストは、別のコントローラ、またはフルページ応答を生成する可能性のある同じAjaxコントローラ(つまり、パラメータが渡された場合)に送信できます。 – stecb
によって処理応答
=> AJAX呼び出し応答を、「エコー」それはもはや動作しません。あなたの質問は何ですか? –
2つのサーバー要求を回避することはできません。フォームをロードする必要があり、2番目がポストを処理する必要があります(AJAXかページ遷移かにかかわらず)。もちろん、AJAXでは、サーバーは応答するためにページを再構築する必要はなく、処理するクライアントサイドのJavaScriptに必要なデータのみを返信するだけです(OK、エラー、ページの影響部分の更新など)。しかし、@Pekkaのように、ベストプラクティスは、標準的な "ページ遷移"ポストのフォームを提供し、javascriptが送信動作をオーバーライドできるようにすることです。その後、誰もが、js以外のユーザーであっても処理されます。 –
@ David。私のフォームはAjaxの方法で処理され、たとえ "ページ遷移"の投稿であっても。 「ページ遷移」ポストでは、ajaxは新しいビューへのリンクにすぎません。 – lovespring