- 締切済み
テキストボックス内を・・・
インプット画面でインプットした時に一つのテキストボックス内だけを再度その画面を立ち上げた時に、前回選んだ項目が残っている状態にするにはどうやったらいいでしょうか? 例えば、氏名:”山田花子”(テキスト)・年齢:”21歳”(テキスト)・職業:”会社員”(テキストボックス)・趣味:”音楽鑑賞”(テキストボックス)というようなインプット画面があるとして、その項目を全部入力して登録し、もう一度その画面を立ち上げた時に、職業の項目だけが前回登録した職業(会社員)で表示され、あとは空白になっているような状態にするにはどうしたらいいでしょうか? わかりにくい説明で申し訳ありませんがどなたか宜しく御願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hequil
- ベストアンサー率65% (242/372)
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 で有効期限を設定する必要があります。 ・・・と適度に調べてもらうよう、ぼかしつつ回答してみました。 参考になれば幸いです。
- maro
- ベストアンサー率47% (95/199)
クッキーを使えば可能です。 登録ページでクッキーに書き込んで、 それを入力ページで呼び出せばいいですね。 <input type="text" value="<% = Response.Cookie("job") %>"> クッキーに値がなければNULLになりますから、 テキストボックスには何も表示されません。