プロが教えるわが家の防犯対策術!

インプット画面でインプットした時に一つのテキストボックス内だけを再度その画面を立ち上げた時に、前回選んだ項目が残っている状態にするにはどうやったらいいでしょうか? 例えば、氏名:”山田花子”(テキスト)・年齢:”21歳”(テキスト)・職業:”会社員”(テキストボックス)・趣味:”音楽鑑賞”(テキストボックス)というようなインプット画面があるとして、その項目を全部入力して登録し、もう一度その画面を立ち上げた時に、職業の項目だけが前回登録した職業(会社員)で表示され、あとは空白になっているような状態にするにはどうしたらいいでしょうか? わかりにくい説明で申し訳ありませんがどなたか宜しく御願い致します。

A 回答 (2件)

maroさんも書かれていらっしゃいますが、Cookieを使うのが一番手軽です。


会員制ページ等でユーザー認証とかあればそこに組み合わせてデータベースに保存する手もあります。

但し、#1で書かれているコードはまず動きません。
Response.Cookie という命令はありませんし、
Response.Cookies は Cookie への書き込み命令になります。

Cookieに保存されている値を初期値としてセットするには

<input type="text" name="job" value="<%= Request.Cookies("job")%>">
と書けば10点。これだとXSS脆弱性が発生しますので

<input type="text" name="job" value="<%= Server.HTMLEncode(Request.Cookies("job"))%>">
と書くのがCookieを使った場合の例となります。
(個人的には変数代入してから <%= ck_job%> とか書く方が好きですが)

保存するには method先の asp内で

  '--- method="get" または method無指定 の場合
  Response.Cookies("job") = Request.QueryString("job")

  '--- method="post" の場合
  Response.Cookies("job") = Request.Form("job")

で保存することができます
但し、これではCookieの有効期限が設定されていませんので、
別途 Response.Cookies("job").Expires で有効期限を設定する必要があります。

・・・と適度に調べてもらうよう、ぼかしつつ回答してみました。
参考になれば幸いです。
    • good
    • 0

クッキーを使えば可能です。


登録ページでクッキーに書き込んで、
それを入力ページで呼び出せばいいですね。
<input type="text" value="<% = Response.Cookie("job") %>">

クッキーに値がなければNULLになりますから、
テキストボックスには何も表示されません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!