質問: フォームの1つが送信されない複数のステップフォームを処理する方法 2つのフォームを必要とする送信プロセスがあるとします。 2番目のフォームを送信すると、電子メールがトリガーされます。 2番目のフォームが送信されない場合はどうしますか?ユーザーが誤ってウィンドウを忘れたり閉じたりしたとします。私の唯一の解決策は、電子メールが送信されていないことを識別する最初のフォームの送信からのフラグでdbを更新することでした。 2番目のフォームを送信すると、イベントがトリガーされ、メールが送信され、メールが送信されたことを示すフラグでdbが更新されます。 cronジョブは定期的に実行され、未送信の電子メールのフラグをチェックし、情報を収集して、電子メールを送信します。これが問題に対処する最良の方法ですか?ありがとう。編集:明瞭度フォーム1ユーザーが一般データを送信しますメッセージ1ユーザーに選択肢が提示されました。ユーザーは「合格」または「受け入れる」を選択する必要があります。ユーザーが「accept」フォーム(フォーム2)を送信すると、電子メールが送信されます。ユーザーが「パス」フォーム(フォーム2)を送信すると、別の選択肢(フォーム3)を含む別のメッセージが表示されます。ユーザーが何もしない場合、提供される最後の選択肢はデフォルトの選択肢ですが、この時点ではまだ電子メールを送信する必要があります。それがより明確であることを願っています。
回答: これを心配する理由によります。dbに不完全なデータがあるという懸念がある場合は、ユーザーが2番目のフォームを完了し、dbを更新して電子メールを送信するまで、入力されたデータをユーザーセッションに保持することをお勧めします。ユーザーが2番目のフォームに入力する必要がない場合、セッションがタイムアウトすると交換全体が忘れられます。ユーザーが2番目のフォームに記入する必要があることに気づかないという懸念がある場合は、強くフォームの再設計(おそらくマージ)を検討する必要があります。これはユーザーインターフェイスの問題です。フラグ(問題で説明されている)があると、これが発生するかどうかを特定するのに役立ちますが、ユーザーエラーによって発生したのか、単にユーザーが興味を失ったために発生したのかを特定することはできません(何らかの視聴者がいない限り)。別の方法として、ユーザーのセッションの有効期限が切れたときにフックできる場合(これはjavaサイトでは非常に簡単です。他のサーバーサイドテクノロジーのこの機能に精通していません)、その時点で不完全なトランザクションをチェックできますポイント。