- 締切済み
<form> POST時の値に戻す。
フォームへ値入力後ポストをしたときに入力項目にエラーがあった場合や バックをした場合。 valueへポストした値(例:<input text="name" value="ポストした値">) をつけて吐き出しています。 非常に手間なのでできれば、上記処理をしなくてもフォームの input値がポストされた状態にしたいと思っています。 何か方法があるのでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kosa
- ベストアンサー率25% (379/1464)
Javaスクリプトのヒストリーバックを使えばできましたよ
- Kuppycat
- ベストアンサー率50% (109/216)
Javascriptのwindow.history.go(n)じゃだめかな? nに負数を入れれば戻るになるので、2ページ前なら -2 で。
- kosa
- ベストアンサー率25% (379/1464)
あまり自信がある回答ではありませんが、同じPHPプログラム内で変数の受け渡しをした場合は、ブラウザの戻るで値が有効にならないのではないでしょうか? 例えば「form.php」と「main.php」の2個のプログラムがあり、「form.php」→POST→「main.php」の流れで処理した場合は、戻るをしても値が生きているとは考えられないでしょうか?
補足
そんなこともないようです。 たとえばこのokwebの答えるにポストする場合 <form action="/kotaeru_hosoku.php3?a=5424662" method="POST"> へpostしますが、同スクリプトで値が生きています。 (戻り後、投稿した文章があり、sourceを見ると <textarea name="fields[answer_remark]" cols="70" rows="12"></textarea>になっている。)
- athanasius
- ベストアンサー率37% (361/964)
value に入れないと値が出ないのは、HTMLの仕様ですから。 今より楽したいとなると、お手軽なので PEAR の中の QuickForm を使ってみては。 かなり楽です。 http://www.planewave.org/translations/quickform/html_quickform.html
補足
テンプレート smarty or flexyをつかってvalueの処理を行っているのですが、 入れなくてもブラウザの「戻る」をしたときに値が生きている場合があるのです。 このサイトへの書き込み(POST)や2chの書き込み後、ブラウザの「戻る」をすると値が生きています。 ナゼでしょう また意図的に行うことは可能ですか?
補足
OKweb, 2ch共にJavaScriptを使用していないようです。 またヘッダーではキャッシュを無効化していないようです。 クッキーでも使用しているんでしょうか。