• ベストアンサー

フォーム処理から戻ったページの表示位置について

こんにちは よろしくお願いいたします。 商品一覧を管理するページを作っています。 たとえば、商品一覧を表示して、価格とか商品説明を変更できる管理者用のページ「admin.php」があったとします。 このページで、ある商品の説明文を編集して「送信」ボタンを押すと、内容が「revision.php」に送られ、そこでデータベースファイル(txtファイルで作りました)の内容を書き換えてから、admin.phpに戻る、という処理を行っています。 revision.php内で処理が完了すると、「header("Location:admin.php")」という処理でadmin.phpに戻るようにしています。 そこで、ひとつ希望がありまして。 admin.phpに戻ると、どうしてもページ最上部に戻されてしまいます。 続けて、どんどん別の商品も編集したいなぁと思っている場合、またスクロールして該当の場所を探すのが大変です。 ですので、revision.phpからadmin.phpに戻る場合に、ページ最上部ではなく、送信前の表示位置のところへ戻すことは可能でしょうか。 ちょうどブラウザで、ある程度スクロールしたページから別のページへリンク移動して、ブラウザの「戻る」ボタンで戻った時のイメージに近いです。 お分かりになる方、いらっしゃいましたら、アドバイスいただけると幸いです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • masa6272
  • ベストアンサー率66% (93/140)
回答No.2

bodyに次のように書きます。 <body onLoad="document.MyForm.MyInput.focus()"> MyForm、MyInputは、フォーカスを当てたいフォーム、input部品のname属性です。 名前をユニークにするのが難しいようでしたら、決まった名前のhiddenでも作って戻したいところに入れればいいでしょう。

hoso1974
質問者

お礼

早速のご回答ありがとうございます。 なるほど、JavaScriptで対応するのですね。 各商品のテキストフィールドには一意のnameはつけられないので、hiddenでやってみましたが、最上部に表示がされてしまいます。 こちらのやり方がよくない気がするので、もう少しいろいろ続けてみます。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

以下のどちらかになるでしょう。 (1)ハッシュを設定する。 よくある<a id="fuga">fuga</a>っていう設定ですね。 これにheader("Location:hoge.php#fuga")で飛べばよいでしょう (2)データ送信をajaxで行う。 ようは、ページの再描画がなければよいわけです

hoso1974
質問者

お礼

早速のご回答ありがとうございます。 たしかに(1)の方法は考えてみました。 ちょっとわがままですが、この場合、アンカーポイントがページの最上部になるので、若干スクロールがずれてしまいます。 このズレがなければいいなぁ、と思っていまして。。。 ajaxでは可能なのですね? 実はJavaScriptの方はよくわからずにPHP使っていたりするので、調べてみようと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A