私が解決しようとしていることを説明する:
ファイルのリストを表示するWeb ページ (file_list.php
)があり、各ファイルの横に削除ボタンがあります。ユーザーが特定のファイル名の近くで [DELETE] ボタンを押すと、ブラウザーはdelete_file.php
ファイルを削除するというスクリプトに移動し、ブラウザーに戻るように指示します。file_list.php
delete_file.php
シンプルheader("Location: file_list.php”);
に戻るfile_list.php
ブラウザに戻るとfile_list.php
、ページがリロードされますが、ユーザーが以前いた場所に再度スクロールすることはありません。ユーザーがファイル リストをスクロールし、最後のファイルを削除したとします。ブラウザがページを再度表示したときに、file_list.php
ページの一番下までスクロールされることはありません。
私が思いついた回避策:
私はこれを回避するための奇妙な方法を見つけました。header("Location: file_list.php”);
delete_file.php
window.history.go(-1)
この回避策は、ユーザーがセッション中である場合(単純に PHPsession_start
関数を使用する場合)に完全に機能します。ブラウザーは file_list.php ページをリロードし、それを以前の場所にスクロールして戻します。
ただし、ユーザーがセッションに参加していない場合、ブラウザはページをスクロールしますが、以前に再ロードしないため、ユーザーは削除したファイルをファイル リストに表示します。
質問
セッションにいない場合でも、セッションに戻ったときにブラウザーの動作を再現する方法を知っていますか?
この問題を解決する別の方法を知っていますか?
ありがとう!
AJAX を使用してファイルを削除できることはわかっているので、毎回 delete_file.php に移動する必要はありませんが、これは答えではありません。