郵便番号を入力して検索ボタンを押すと、フォーム内に住所が入るプログラムをJavascript+PHPで作っています。(よくあるネットで公開されているのと同等です)


住所検索後、確認画面へ行き、再度フォームに戻るとフォーム内のすべての入力値が消えています。

これはブラウザ(IE6)上の問題だと聞いたことがあるのですが、出来れば解決したいと思っています。

具体的な例・ソースを提示出来ませんが、ご存じの方は解決策を教えて下さい。

回答の条件
  • 1人2回まで
  • 登録:2007/10/16 01:42:42
  • 終了:2007/10/23 01:45:02

回答(1件)

id:battan No.1

battan回答回数63ベストアンサー獲得回数12007/10/16 02:19:41

ポイント60pt

SESSIONを使うのはどうでしょうか?

飛び先の検索結果を表示するPHP内で$_POSTの内容がNullでなければセッションに登録し、検索画面ではセッションをチェックし、なければ空白、あれば最終の検索値をフォームへ代入する方法です。

検索結果側

if($_POST("post")!=""){

$_SESSION{"post"} = $_POST{"post"};

}

その値で検索。

検索画面側

if($_SESSION{"post") != ""){

$POST = $_SESSION{"post"};

}

で、HTML記述に

<input type="text" name="post" value="<? print $POST; ?>">";

自宅マシンにテストできる環境がないので実働テストできてないので何で不具合があれば容赦なく言ってください。

ただし、この場合だとどこかでセッションを破棄しないと最終検索した郵便番号が残ってしまいます。仕様によって破棄するタイミングが違ってくると思いますので必要であれば仕様を追加でご記入ください。

id:kt26

この方法も考えてはいるのですが、おっしゃるとおりセッションの破棄のタイミングが難しいです。


入力フォーム→確認画面→完了


という場合、入力フォームにPOSTでデータが送られていない場合は、破棄するという方法が一般的ではあると思いますが。。

2007/10/16 02:23:06
  • id:GEN111
    ブラウザの機能で戻るならセッションかクッキーでしょうけど、
    最近は確認画面に「戻る」ボタンをつけてるのも多いですよね。
  • id:battan
    「戻る」ボタンに対する挙動仕様によって変わってくると思います。
    historybackならブラウザと同じ動作しかできませんがsubmitなら判定処理ができます。
    今回のケースであれば完了画面に「検索完了」ボタンを付けて押されたらセッション破棄でいいのではないでしょうか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません