フォームを送信すると、位置がウィンドウの上部に戻ります。前の位置に行く代わりに。
スクロールトップを使用して位置を記憶することを検討していますか、それともより良いアイデアがありますか?
PHP5、jQuery、MySQL などを使用しています。
最初に、訪問者がフォームを送信したときに到達するアンカーをページに作成します。
次に、フォームアクションで、アンカーを使用してポイントをファイルにリダイレクトします
例えば
<div id="view_from_here" >.....
それから
<form action="myfile.php#view_from_here" ....
これをチェックしてください:
<script type="text/javascript" src="der/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="der/jquery.cookie.js"></script>
<script type="text/javascript">
function get_position(){
var top_position = document.documentElement.scrollTop;
$.cookie('pos', top_position);
};
function set_position(){
var top_position = $.cookie('pos');
window.scrollTo(0,top_position)
$.cookie('pos', null);
};
</script>
</head>
<body onload="set_position();">
.
.
.
<form method="post" action="" onsubmit="return get_position();">
</form>
Ajax 経由でフォームを送信しても、何も変更されません (とにかく同じページにリダイレクトする場合は、オプションである可能性があります)。また、送信前に JavaScript を介して Cookie に位置を保存し、新しいページがロードされたときに値を取得して設定することもできます (例: jQuery scrollTo を使用)。または、フォーム フィールド (ユーザーがスクロールした最後の位置である可能性が非常に高い) にアンカーを設定し、送信後にフォームにスクロールします。