したがって、イベントのチェーンは次のとおりです。
- ユーザーがフォームを送信します。
- 送信の処理中に、「レコードが保存されました」などのメッセージが生成されます。
- ユーザーは、検索結果などの新しいページにリダイレクトされます。
- 新しいページにメッセージを表示する必要があります。
では、問題は、ステップ2からステップ3までのメッセージを取得する方法です。これは1つの単純な例にすぎません...他にもはるかに複雑な例がたくさんあります。
私はPHPを使用しています。
ニーズ:
- 複数のメッセージをサポートし、必要に応じて受信側のマシンでフォーマットする必要があります
- メッセージは同じページに追加できます(ステップ4内など)
- 関数またはオブジェクトの内部から追加されたメッセージ
私が思いついたいくつかのオプション:
- セッション変数に配列として格納し、各表示後に空にします
- getまたはqueryパラメーターとして渡します。これを常に処理しているため、煩わしくなり、取得することを忘れないでください。長くなる可能性があるため、クエリ文字列の最大長を簡単に超えてしまう可能性があります
- セッションごとにデータベースに保存します(ログインしているユーザーが常にそうであるとは限りません)。これには、それらが追加される各ページに追加の挿入が必要になり、場合によっては複数になり、すべてのページに追加の選択が必要になります
現在、セッション内のメッセージを配列に格納していますが、もっと良い方法があるかどうか疑問に思っています。上記の他の2つのオプションはあまり良いとは思いません。
編集:セッションメソッドに2つの関数を使用します:AddStatusMsg()(配列に要素を追加します)とDisplayStatusMsg()(HTML形式のメッセージを返し、配列を空にします)。