私は自分のページ "thePage.php"に次のことを気付きました。私のページのthePage.phpには、ユーザーが自分の名前とメールアドレスを入力して送信ボタンをクリックするフォームがあります。以前のフォーム投稿を破棄するようブラウザに指示します。
1)ユーザーが別のページからリンクをクリックしたためにPage.phpに到達すると、サーバーからthePage.phpが呼び出されます。 、
<div>
<a id="logged-in-status" hef="http://mySite/thePage.php"> Click to go to the data entry page</a>
</div>
thePageがブラウザに表示された後、サーバーから取得された:ここで は、上のクリックしたときに、サーバーからthePage.phpを取得し、ブラウザに表示し、そのリンクを持っているhtmlですブラウザの「リロード」ボタンをクリックすると、サーバーからリロードされたページが表示されます。
上記のdivは、私のindex.phpランディングページに表示されます。ユーザーが上記のリンクをクリックすると、サーバーからpage.phpが要求され、ブラウザに表示されます。 thePage.phpには「名前と電子メールを入力」フォームがあります。空白、まだ入力されていない、または送信されたフォームを含むthePage.phpがロードされた後、ブラウザの「リロード」ボタンをクリックすると、ページがリロードされます。 「情報を再送信しようとしています」という警告メッセージは表示されません。ただし、ユーザーがフォームデータを入力した場合(または入力しない場合)は、「送信」ボタンを押します。このフォームの最初の送信後、(1)のリロード動作は、上記は失われる。フォームが空白のままで、ユーザーが「提出」ボタンを押しても、ブラウザは内部的に「ダーティビット」を設定しているように見えるので、ブラウザのリロードボタンをクリックすると、ブラウザは「ああ、このページのフォーム - 少なくとも1回は提出されました - フォーム提出の結果を無視し、今から - フォームが1回提出されてから - 私はもはやなりませんページをリロードするだけです。「以前に送信した情報を再送信する」というメッセージボックスが表示されます。「
ここで私がしたいことがあります。私は、ページ上のフォームが提出されたとしても、ブラウザが内部で設定した「汚れたビット」をクリアしたいと思います。私はちょうどクリックしたかのように、ブラウザを上記の(1)私がthePageに導かれた別のページのリンクは、ページ上のフォームが送信されたことをブラウザが「忘れる」ようにします。
これを行う方法が必要です。もしあなたがそれについて考えているなら--Page.phpへのリンクが他の場所からクリックされると、 'ダーティビット'がクリアされ、ページの再読み込みの振る舞いは(上記の(1)のように 're-send info' 2)。
ブラウザーに「ページ外のリンクからthe page.phpへアクセスしたばかりのように見える」というプログラム的な方法はありますか?このページの以前のフォームの投稿はすべて忘れてしまいました。 "
あなたは約200語の単語を失ってしまいました。これを少し簡略化したいかもしれません。 – mrtsherman
私は、ページをリロードするときにPOSTデータを再送することを考えています(たとえばF5)...すべてのブラウザと同じように、そうですか? – madflow
ブラウザの「ダーティビット」の概念がプログラムで公開されている - プログラムで操作できるのか?私はそのページにアンカーリンクを経由してthe pageに到着したかのように、ブラウザが条件(1)に戻るようにしたい。 – wantTheBest