3

同じページに投稿したいフォームがあります。フォームアクションには、それを含むページ上の要素のフラグメント識別子が含まれています。データを投稿してから、同じページを同じ時点でリロードして、ユーザーが下にスクロールする必要がないようにします。

例 index.php:

<div>
  some very long content that pushes my form down the page
</div>
<div id="myDiv">
  <form action="index.php#myDiv" method="post">
    <input name="abc" value="123"/>
    <input type="submit" value="submit"/>
  </form>
</div>

ただし、いくつかの問題があります。まず、これが適切な方法であるかどうかわからず、フラグメント識別子の適切な方法と見なされるものについてあまり見つかりません。

第二に、送信をクリックすると、フォームが「トップにジャンプする」ことがあると言う人もいます。これはまだ再現できていませんが、データを投稿する代わりに、ブラウザがフラグメント識別子アクションを使用していることは明らかです。

誰でもこれを行うためのより良い方法を提案できますか?

4

1 に答える 1

1

header() 関数と識別子を使用して、フォーム送信後にユーザーをリダイレクトします。

<div>
  some very long content that pushes my form down the page
</div>
/*Use header() to redirect the person on the #point*/
<?php
//form data goes here, if it passes everything then use
header('Location:index.php#myDiv');
exit;
?>
<div id="myDiv">
  <form action="index.php" method="post">
    <input name="abc" value="123"/>
    <input type="submit" value="submit"/>
  </form>
</div>
于 2012-07-20T09:07:00.717 に答える