2011-08-25 11 views
0

特定のページに隠しフィールドの値を設定するシナリオが必要です。
その後、そのページがサーバー上で送信されます(フォーム送信)。今、私は別のページにリダイレクトして、そこに私が以前に設定した値を取得しようとします。しかし、私は設定されている値を取得していない、代わりに私はHTMLのページ自体で提供されているデフォルト値を取得します。 (隠しフィールドは、私のWebアプリケーションのすべてのページに共通のヘッダーページにあります)。htmlでページを読み込んだ後、隠しフィールドの値が失われる

私は一度設定したページを読み込んだらリフレッシュした後でも隠しフィールドの値を取得しているダミーアプリケーションを試しました。

+0

これ以上の情報を提供することなく、なぜそれが機能しないのかわかりにくいです。 – Ikke

+0

隠しフィールドの値の設定方法は?いくつかのコードを表示できますか? –

+0

いくつかのコード例は素晴らしいでしょう。ロード間でデータを格納および取得する方法に関する情報は提供していませんか?あなたはそれをデータベースに投稿し、クッキーに保存しますか? –

答えて

2

ユーザーを別のページにリダイレクトすると、がリロードされ、になりました。あなたのフォームに値を設定することを選択しない限り(例えばjavascriptなど)、フォームの値はデフォルト値になります。

は前に設定しました。」という値は、ページをリロードするたびに入力が明示的に関連付けられていなかったため、サーバはHTMLとデフォルト値を再度生成するため、ブラウザはこのHTMLを表示します。

この現象は、です。です。あなたがする場合はがそれを提出しながら、

はまた、あなたがAJAX submittingを使用することができます、フォームの値を保ちます。

+0

しかし、私はダミーのアプリケーションで期待どおりの値を得ています。私はjavascript自体を使って値を設定しています。私はすべてのナビゲーションのようにしたいだけです。 – Ved

+0

@ adn295:質問を編集し、コード(js + HTML)を表示する必要があります。 – JMax

1

HTMLはステートレスであるため、通常のHTMLでは不可能です。あなたが望むのはsessionまたはcookieにあなたの値を入れて、ロードされているすべてのページにそれを植え付けることです。これはデフォルトではできません。

1

HTTPの仕組みを理解していない - ステートレスです。

これは、リクエストしたすべてのページが前のページと完全に別個であることを意味します。あなたの隠されたテキストボックスがデフォルトに戻されている理由は?

クライアントに送信する前に明示的にバリューサーバー側を設定する必要があります。

2

ここでの他の回答は、実際には正しいです(HTMLは通常、あなたがやりたいことをしません)が、それを動作させるためにできることがいくつかあります。

まず、物事の通常の仕組み:2番目のページが隠しフィールドの適切な値を取得するには、サーバー側コンポーネントで処理します。サーバー側ハンドラの新しいページにリダイレクトしているようです。この作業を行う最良の方法は、そのサーバー側ハンドラーに値を処理させ、それをリダイレクトにパラメーター(おそらくクエリー文字列に付加された)として付加することです。次に、サーバー側のコードでクエリー・ストリング・パラメーターを処理する2番目のページを生成させます。あなたができないか、あなたがからそれを引くことができ、2ページを生成するために、サーバー側のプロセスを持っていない場合は

はここで純粋なHTML/JavaScriptの実装のために回避策ですクエリーストリングはJavascriptを使用します(単に「クエリーストリング変数をjavascriptで取得する」を検索します)。

methodが「GET」のフォームのactionに設定すると、javascriptを使用すると、最初のフォームを2番目のページに直接移動させることは可能です(おそらくお勧めできません)。それは間違いなくサーバー側のハンドラを含めることをお勧めします。

関連する問題