2009-09-28 21 views
7

ブラウザをクリックすると、ドロップダウンとテキスト入力の両方でフォームに入力されたすべてのデータが失われます。ブラウザの戻るボタンをクリックしたときにフォームデータが失われる

これはサーバー、ブラウザまたはコードの問題ですか?あなたはバックが押されたときにフォームデータを保持するためにブラウザのsticky formsを作成する必要が

おかげ

+0

ASP.NETでデータが取得されるため、ASP.NETを使用していないと思いますか? – Natrium

+0

PHPとMySQLを使用していません –

+0

これはWindows Phoneブラウザでも発生します。解決策を見つけようとしています。 –

答えて

9

ブラウザの問題です。戻るボタンをクリックすると、ブラウザの動作が異なります。この動作は、主にユーザーのプライバシー設定に依存します。さらに、HTTP接続の通常の動作にかかわらず、HTTPS接続で表示されたページの戻るボタンを押すと、ほとんどのブラウザは自動的にフォームをリセットします。さらに、AJAXに大きく依存している多くのHTMLフォームは、以前の状態を適切に、または一貫して復元しません。

編集----

今、あなたはあなたが戻ってボタンを押したときにも、セッションを使用していること...ブラウザがフォームに事前ないだろうと仮定すると、PHPとMySQLを使用して言及していること。 PHPセッションで動くページはブラウザにキャッシュされず、前のページに戻るために戻るボタンを押すことは、最初からそのページを開くのと同じです。ほとんどのブラウザはフォームの値を復元することはありません。

+0

Safariはデータを保持していますが、IEとFFはデータを保持していません。 –

+0

正しいセッションを使用していたので、ブラウザがユーザーのクリックをやめるのを止めるまで、この問題を回避する方法はありません。 –

+0

セッションを利用することは可能ですか? –

1

。そのかなり簡単に、検索リンクのチュートリアルをチェックしてください。

2

これはPHPおよびIE8に適用されます。

キャッシュをプライベートに設定する必要があるだけでなく、4つのキャッシュヘッダーを削除する必要があります。これはPHP 5.3でのみ可能です。

PHP 5.2では、Zend FrameworkのsetHeader()メソッドを使用している場合にのみ、4つのヘッダーをブランク値に設定できます。何らかの理由でIE8で4つのヘッダー値を空の値に設定するだけでは不十分です。 PHP 5.3のコードは次のとおりです。

header_remove("Expires"); 
header_remove("Cache-Control"); 
header_remove("Pragma"); 
header_remove("Last-Modified"); 
関連する問題