- 締切済み
submitを押すといちいちページ最上部にいってしまい困っています
いま勉強のページを、携帯からも、PCからも見れるように、 javaスクリプトを使わずに作っています。 作りたいと思っているものは、 1.確認ページ 問題を書いて、その横にボタンを設置し、クリックすると答えが表示 されるといったもの。 2.問題ページ 1.の確認ページをベースとし、問題の下にテキストボックスを置き、 テキストに記述したものをpostしphpでmysqlから取得した答えと照合 し正解か否かを表示するもの という感じです。 今1を作っており、問題とボタンを設置し、クリックしたら答えが表示されるようにはなったのですが、 答えを見るボタンをクリックするたびに、ページ最上部に移動してしまい困っています。 phpでpostしたときにはページ最上部へ移動してしまうのでしょうか? どうしたらいいのか教えてください。 またソースが非常に汚く、 問題の追加ごとに手を加える部分が多くて面倒です。 なにかいい案があれば教えてください。 <?php if (isset($_POST["m"])) { $my_row = mysql_query("SELECT * FROM hou WHERE id='m'",$mysql_con); $m = mysql_fetch_array($my_row); $_SESSION["m"] = $m["free"]; } if (isset($_POST["m_del"])) { $_SESSION["m"] =array(); } if (empty($_SESSION["m"])) { print "<br />"; } else { echo $_SESSION["m"]; }?> <form action="000031.php" method="post"> <input name="m" type="submit" value="show"/> <input name="m_del" type="submit" value="隠す" /> </form>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
>phpでpostしたときにはページ最上部へ移動してしまうのでしょうか? いや、考え方がちがいます。 おなじページであっても理論上はあくまでも別ページに移動しているのです。 携帯でなければAjaxという手もあるのですが・・・ 場合によっては、idやnameをアンカーではっておいて actionにハッシュ付きで移動場所をしていすれば、先頭にいくのは なんとか避けられます。といっても今の画面をキープしたまま ということは難しいですけど <a id="hoge" name="hoge">hoge</a> <form action="自分#hoge"> ・・・・ </form>
お礼
>おなじページであっても理論上はあくまでも別ページに移動しているのです。 とてもよくわかりました。 postなどをなんとなく使っているからこんな事態におちいってしまったわけですね。情けないです。 この知識を足がかりにいろいろがんばってみます。 アンカーでもつけてみます。 本当にありがとうございました。