ドロップダウンリストをHTMLのフォームで作成したときのことで悩んでいます。
1~10まで選択可能なドロップダウンリストを用意したフォームが2つあるとします。
そのフォームに送信をボタンをsubmitとしておいておきます。
"test.c"というプログラム内のprint文でHTMLコードを記述し、ブラウザで選択した値を、プログラム内で変数として使用したいと考えております。
以下のようなものを記述したとします。
<form name = "select" method="post" action="test.c">
<select name="list1">
<option value = "1"> 1 </option>
~
</select>
<select name="list1">
<option value = "1"> 1 </option>
~
</select>
<input type="submit" value="表示">
</form>
として、
[1~10のリスト1]
[1~10のリスト2]
[送信]
というような感じです。
このtest.cをブラウザ上で起動し、送信ボタンをおせば、
・「0~リスト1で選択した数字」をブラウザに表示
・その中で「リスト2で選択した数字」の表示を消す
という処理がtest.cで行われるようなプログラムとします。
例として
・リスト1とリスト2は始めに1が選択されているとします。
・「リスト1で5」、「リスト2で3」を選択して送信を押します。
・test.cのページが更新され、ブラウザ上にはリスト2つと送信ボタン、「0・1・2・4・5」が表示されているとします
ここからが質問になります。
このとき更新されたことにより、2つのリストは初期選択の1が選択された状態に戻っているが、ブラウザ上には前回送信した結果の数字「0・1・2・4・5」が表示されています。
このときに、このままやっぱり3を表示しないのではなく2を消したいとなった場合、リスト2を"2"に選択しなおすだけでなく、リスト1も再度"5"を選択しておかなければならないと思います。
この場合に、更新後のページのリストを前回選択した5と3のままにしておけば、リスト2を3から2に変更するだけで良くなるのですが、このように前回送信した状態を保持してリストを表示することは可能でしょうか。
よろしくおねがいします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
いくつか方法がありますが・・・私が良く使う方法を説明します。
私はPerl使いですが基本は同じです。テンプレートのフォームを用意します。
<form ****>
<select name="ABC">
<option value="1" $SELECT_ABC_1>選択肢1</option>
<option value="2" $SELECT_ABC_2>選択肢2</option>
<option value="3" $SELECT_ABC_3>選択肢3</option>
とかにして、
($SELECT_ABC_1,$SELECT_ABC_2,$SELECT_ABC_3) = '';
if($in{'ABC'} eq '1'){$SELECT_ABC_1 = "selected=\"selected\""}
elsif($in{'ABC'} eq '2'){$SELECT_ABC_2 = "selected=\"selected\""}
・・・以下略・・
cookieについても同様にチェックする。
同様に確認画面のときも、
<input type="hidden" name="ABC" value="2">
にする。同時にset-cookieにて、&ABC=2 をいれておく。
Cでも他の言語でも考え方は同じです。
XHTMLは面倒なので、HTMLでよいと思いますが
No.1
- 回答日時:
可能です。
分かりやすくするためには最初のフォームを含めてすべてプログラムから出力したほうが良いでしょう。受け取ったデータは、input type="hidden"で引き継ぎますが、それがあればフォームを作成する際に利用できます。また、フォームの戻るではなくブラウザの戻るを使われた時のためにcookieを併用すると良いでしょう。
この回答への補足
上の例のForm(2個目のリストのnameはlist2です。間違えました。)で、selectを使ったリストの場合、hiddenをどのように使えば、前回の選択結果を保持してリスト中のその要素をselectedしておけるのでしょうか。
初歩的な質問ばかりですいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンが両方とも選択で...
-
INPUT TYPE
-
プルダウンメニューでValue値を...
-
<select>タグの幅設定
-
チェックボックスとセレクトボ...
-
メールフォームのプルダウンメ...
-
FORMのselectの選択肢を最初か...
-
「value」に2つの値をセットす...
-
ラジオボタンを選択済みにする...
-
select値をhiddenのvalueに渡し...
-
wordの数式について 定積分を書...
-
htmlからパラメータで、cgiに渡...
-
VB初心者。小数点以下の表示で...
-
別formのhidden項目を自form値...
-
perlにおけるセッションIDについて
-
チェックボックスの返す値
-
プログラミングについての質問...
-
JEditorPaneでwebページを表示
-
VB.net データーグリッドビュー...
-
テキストBOXの縦幅を変えたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
INPUT TYPE
-
FORMのselectの選択肢を最初か...
-
チェックボックスとセレクトボ...
-
チェックボックスグループの一...
-
ラジオボタンを選択済みにする...
-
<select>タグの幅設定
-
OPTIONタグにループは使えない...
-
iframeごとに戻るボタンを
-
メールフォームのプルダウンメ...
-
リストボックス(multipleなsel...
-
selectboxの画面遷移で、postデ...
-
プルダウンメニューでValue値を...
-
htmlでセルの値を取得して計算...
-
チェックボックスの余白を指定...
-
一つの検索窓で複数のサイトか...
-
ラジオボタンとセレクトメニュ...
-
コンボ1の内容に応じてコンボ...
おすすめ情報