複数のフォームを持つ Web サイトで作業しています。これらのフォームはすべて 1 つの php ファイルにあります。デフォルトのフォームを使用するためにファイルをインクルードするだけです。デフォルトのフォームが送信されると、ファイル内の次のフォームに進みます。問題は、いくつかのフォームのデータをその後のフォームに渡す必要があることです。私の質問は、フィールドの値をグローバル変数に設定して、隠しフィールドに渡したり、セッション変数を使用したりする必要がないようにすることはできますか?
6 に答える
オプションがあるとは思いません...セッションが最善の方法であり、次のようなことを行うことで$_POST配列全体を保存するのが面倒である必要はありません。
$_SESSION['previousPost'] = $_POST;
まず、一度の php で複数のフォームを設定すると、将来的にはメンテナンスの悪夢になるでしょう。しかし、それはあなたの質問ではありません...この方法を使用する場合は、フォームを含む同じスクリプトに POST できます。連続して送信するたびに、グローバル $_POST 変数に追加します。
秘訣は、次の送信ごとに前のフォームのデータを引き続き渡すようにすることです。これは、前のフォームのデータの非表示フィールドを維持する必要がある可能性が高いことを意味します。これは洗練されておらず、問題が発生しやすいです。たとえば、線形ワークフロー (一方向) です。
セッション内のデータ、またはセッション内のシリアル化されたオブジェクト (適切なアクセサーを使用) を維持することをお勧めします。データベースがある場合は、フォームを送信するたびにレコードの列に値を入力して、段階的に単一のレコードをいつでも作成できます。
いいえ、これは不可能です... 非表示の OR セッションを使用する必要があります。
ページがクライアントに送信されると、すべての PHP ページ変数の有効期限が切れます。前のページで必要な場合は、サーバーまたはクライアントにデータを保存する必要があります。
はい、セッションで設定できます。次のようにセッションで設定できます。
$_SESSION[key]=value;