• 締切済み

<form> POST時の値に戻す。

フォームへ値入力後ポストをしたときに入力項目にエラーがあった場合や バックをした場合。 valueへポストした値(例:<input text="name" value="ポストした値">) をつけて吐き出しています。 非常に手間なのでできれば、上記処理をしなくてもフォームの input値がポストされた状態にしたいと思っています。 何か方法があるのでしょうか。

みんなの回答

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.4

Javaスクリプトのヒストリーバックを使えばできましたよ

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.3

Javascriptのwindow.history.go(n)じゃだめかな? nに負数を入れれば戻るになるので、2ページ前なら -2 で。

参考URL:
http://www.tohoho-web.com/js/history.htm#objHistory
realforce
質問者

補足

OKweb, 2ch共にJavaScriptを使用していないようです。 またヘッダーではキャッシュを無効化していないようです。 クッキーでも使用しているんでしょうか。

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.2

あまり自信がある回答ではありませんが、同じPHPプログラム内で変数の受け渡しをした場合は、ブラウザの戻るで値が有効にならないのではないでしょうか? 例えば「form.php」と「main.php」の2個のプログラムがあり、「form.php」→POST→「main.php」の流れで処理した場合は、戻るをしても値が生きているとは考えられないでしょうか?

realforce
質問者

補足

そんなこともないようです。 たとえばこのokwebの答えるにポストする場合 <form action="/kotaeru_hosoku.php3?a=5424662" method="POST"> へpostしますが、同スクリプトで値が生きています。 (戻り後、投稿した文章があり、sourceを見ると <textarea name="fields[answer_remark]" cols="70" rows="12"></textarea>になっている。)

回答No.1

value に入れないと値が出ないのは、HTMLの仕様ですから。 今より楽したいとなると、お手軽なので PEAR の中の QuickForm を使ってみては。 かなり楽です。 http://www.planewave.org/translations/quickform/html_quickform.html

realforce
質問者

補足

テンプレート smarty or flexyをつかってvalueの処理を行っているのですが、 入れなくてもブラウザの「戻る」をしたときに値が生きている場合があるのです。 このサイトへの書き込み(POST)や2chの書き込み後、ブラウザの「戻る」をすると値が生きています。 ナゼでしょう また意図的に行うことは可能ですか?

関連するQ&A

専門家に質問してみよう