- 締切済み
前の画面の情報を保持するには?
こんばんは。 質問がありますので教えていただけますか? 入力フォームをHTMLで書きました。 ボタンを押すと次の画面で入力確認できるようにしました。 次の画面で修正ボタンを押すと1つ前の入力フォームに戻るように しました。 しかし、もどったら初めに入力した値がリセットされてしまいます。 リセットされずに入力データを保持する方法が分からないのですが 教えていただけませんでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- pick52
- ベストアンサー率35% (166/466)
ブラウザの戻るボタンなどはページのキャッシュによって保持されるので キャッシュが消えれば初期状態になってしまいます。 他にIEだとJavaScriptで操作している部分まで戻ってしまいますね。 (inputのtype="file"もセキュリティの問題から消えます) ここはセッションやJavaScriptを併用して自力で復元してやるしか ないです。 戻るボタンで前のページに戻ったときは(基本的には消えているのが 普通で)内容が残っていることがあるのはどちらかというと偶然と 見た方がいいと思います。 因みにこんな感じにするとページを推移せずに確認画面を表示できたり しますけど、JavaScriptに対応していない環境や無効な環境では正常に 表示できませんし、ブラウザのCSS解釈とかいろいろ問題は多いと 思います。 <html lang="ja"> <head> <title></title> <script type="text/javascript"> function pre() { var form = document.getElementsByName('form')[0]; var td = document.getElementsByTagName('td'); document.getElementById('input').style.display = 'none'; document.getElementById('preview').style.display = 'block'; for(var i = 0; i < form.length; i++) { if(form[i].name != '' && form[i].name != 'submit') { td['pre_' + form[i].name].firstChild.nodeValue = form[i].value != '' ? form[i].value : ' '; } } return false; } function back() { document.getElementById('input').style.display = 'block'; document.getElementById('preview').style.display = 'none'; return; } </script> </head> <body> <form name="form" action=""> <div id="input"> <input type="text" name="text1" value=""> <input type="file" name="file1"> <input type="button" value="確認" onclick="return pre();"> </div> <table border="1" id="preview" style="display: none;"> <tr> <td id="pre_text1"> <td> </tr> <tr> <td id="pre_file1"> <td> </tr> <tr> <td><input type="submit" name="submit" value="送信"> <input type="button" value="戻る" onclick="back();"></td> </tr> </table> </form> </body> </html>
- yambejp
- ベストアンサー率51% (3827/7415)
>次の画面で修正ボタンを押す 修正ボタンがそういうつくりなのでしょう。 (元のURLを呼び出しているだけだとか・・・) history.backしたりすればある程度もとのデータは残せると思います