![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
現在、jspとservlet、javascriptで座席登録のシステムを作っているのですが。
たとえば、jsp上で、
□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□
と座席が表示されていた場合に、
押した座席の値をservletに送るという機能を作りたいのですが、
どうやって実装したらいいのかが、思いつきません。
座席は、データベースから値を受け取り、forでまわして表示しています。
選択した座席の値のみを送信したいのですが、どうやって実装したらいいと思いますか?
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
>その方法も考えましたけど、それだと、送った先ですべての
>チェックボックスの値を検索しないといけないのでやめました。
>(nullのデータは送りたくないので)
ちなみに、String[]配列には、チェックされたvalueしか入りませんよ。
No.6
- 回答日時:
>送った先ですべてのチェックボックスの値を検索しないといけない
普通はそういう形になるよ。
javascriptが使えるならチェック外れたらhiddenの値をdisabledして、チェック(選択)ボタン自体はフォームから外れてて無関係って構成にしたら近くなるよ。
後はjavascript使ってるんだから送信する値を自分で増減できるでしょ
No.5
- 回答日時:
kozikojiです。
>考えとしては、一度座席のボタンを押した後に、
>その押されたボタンの値を一時的に格納して、
>さらにつづけて座席のボタンが押された場合に、
>さっき一時的に格納した変数(配列)に値を追加して、
>送信ボタンが押された場合、値を送信したいと考えています。
チェックボックスで、簡単に実装できますよ。
<input type="checkbox" name="XXX" value="YYY">
チェックボックスを座席数分作成すると思いますが、その場合、
name属性を、全てのチェックボックスで同じにします。
value属性属性には、識別できる値(この場合は、座席番号)を入れます。
submit後、サーブレット側で、
request.getParameterValues("name属性で指定した文字列")
のようにメソッドを実行すると、チェックされたvalues属性を保持する、
String[]配列が取得できます。
PS:
Ajaxのライブラリには、カスタマイズされたかっこよいチェックボックスもあるので、
見た目にこだわるのであれば、使用をお勧めします。
すべてオープンソースなので、自分流にアレンジもできますよ。
この回答への補足
回答ありがとうございます。
その方法も考えましたけど、それだと、送った先ですべてのチェックボックスの値を検索しないといけないのでやめました。
(nullのデータは送りたくないので)
どちらかというと、チェックボックス自体の画像を変えたいです。
No.4
- 回答日時:
>ラジオボタンってよりかは、チェックボックスのイメージ
ならチェックボックスでやれば良いと思うよ
onかoffか。
チェックボックスじゃなくどうしてもボタンでやりたいんだって言うのならそれなりにめんどい処理をくっつけて再現する事になるけど原理はチェックボックス。
まずチェックボックスで作って、その後改造する方がやりやすいんじゃないかな。
No.3
- 回答日時:
>その場合だと、valueの中身がサーブレットから取ってきている
>ため、javascript内で代入できないんですよ。
例えば、
<a href="javascript: void(0);" onclick="sendseat( '座席番号' )">□</a>
の、'座席番号'の渡し方が分からないということでしょうか?
座席は、データベースから値を受け取り、forでまわして表示して
いるということなので、
'<%=変数名%>'
というのはどうでしょうか?
意図している回答かどうか分かりませんが...
この回答への補足
回答ありがとうございます。
> <a href="javascript: void(0);" onclick="sendseat( '座席番号' )">□</a>
その方法も考えたのですが、それだと、値をひとつしか渡せなくなってしまうと思い、やめたんです。
考えとしては、一度座席のボタンを押した後に、その押されたボタンの値を一時的に格納して、さらにつづけて座席のボタンが押された場合に、さっき一時的に格納した変数(配列)に値を追加して、送信ボタンが押された場合、値を送信したいと考えています。
ついさっきまでは、Ajaxを調べてたのですが、それらしいのが見つけられず、断念しました。
何かいい方法はないでしょうか?
よろしくお願いします
No.2
- 回答日時:
>valueの中身がサーブレットから取ってきているため、
>javascript内で代入できない
そんな事は無いはず。
なぜなら
jsp(鯖側処理)→(処理済の)html→クライアント(ユーザ)閲覧(javascript動作はここ)→ユーザ操作情報→サーバ
の筈だから。
即ちクライアント側のブラウザで表示できているなら値が設定されていれば必ずjavascriptで拾える。
一般的にはjsp側で並べる時に属性やvalueを「重複無しの値(ユニーク)」で埋め込んでonClickの時にthisで渡して値を調べるって形じゃないかな。(要するにNo1の言う、hiddenに「調べた値」を渡してsubmitって状態)
submitで渡したいと有るけどそれってつまり…ラジオボタン?だとするならラジオボタンの見てくれをcssで変更してしまうとか……
この回答への補足
回答ありがとうございます
>jsp(鯖側処理)→(処理済の)html→クライアント(ユーザ)閲覧(javascript動作はここ)→ユーザ操作情報→サーバ
確かに、考えてみれば可能そうなんですが、混乱して、どう考えていいのかわからなくなてきました><//
ラジオボタンってよりかは、チェックボックスのイメージの方が高いです。
たとえば、座席が
□□□□□□
こうあったとした場合に、左から3番目を押した場合、
□□■□□□
こう変わり、さらに、続けて1番目を押した場合
■□■□□□
[送信]
となり、送信を押すとこの色が変わってる資格の値の中身をservletに飛ばしたいのです。
1つなら、javascriptで拾えそうなんですが、2つ以上となると拾えるのかな?って思ってしまい、質問しました。
言ってることが分かりにくいと思いますが、どうか、知恵を貸してください(笑)
No.1
- 回答日時:
どのような形で送信をしたいかがわかりませんが、
例えば、
座席を押したときに、座席の番号をhiddenに設定して送信という形などじゃ駄目でしょうか。
例)
function sendseat( number ){
document.hoge.seat_number.value = number;
}
<form action="./" method="POST" name="hoge">
<a href="javascript: void(0);" onclick="sendseat( '座席番号' )">□</a>
<input type="hidden" name="seat_number" value="">
<input type="submit" neme="" value="送信">
</form>
servletに詳しくないため、あまりいい意見じゃありませんが参考になれば><
この回答への補足
回答ありがとうございます。
<座席を押したときに、座席の番号をhiddenに設定して送信という形<などじゃ駄目でしょうか。
その場合だと、valueの中身がサーブレットから取ってきているため、javascript内で代入できないんですよ。
補足:送信はsubmitでサーブレットに渡したいと思ってます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript テーブルの中のセレクトボックスの値が0のとき、非表示にしたい 3 2022/05/29 10:13
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- 電車・路線・地下鉄 ラピートの6号車・5号車の席が購入できない理由について 3 2022/03/26 07:36
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- 飛行機・空港 初めて海外旅行に行く大学生です。 タイエアアジアを使って予約しようと考えているのてすが、航空券だけで 1 2022/10/14 22:31
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- 所得税 電子税?のメールについて教えてください 8 2022/09/04 21:38
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- 電車・路線・地下鉄 南海特急の座席指定 2 2022/10/02 16:09
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「戻る」ボタン使用時のフォー...
-
JSPの処理の途中で、JavaScript...
-
Webページ中の javascript をVB...
-
VB.netの重複データ数カウント...
-
event.srcElementの動的設定
-
グローバル変数とローカル変数...
-
六角形のマスの作り方
-
正整数の半角数字かどうか判定する
-
エクセルVBA/ Formatで文字列が...
-
PowerPointで時計表示
-
JavaScriptでショートカットキ...
-
javascriptからサーバサイドの...
-
JavaScriptで、実行するたび値...
-
文字認証の問題
-
VBScript から JavaScript を呼...
-
イベントevt?evt.target:event....
-
コメント削除/圧縮/難読化
-
外部リンクのクリック数を表示...
-
javascriptで最初のところに戻...
-
C#でTextBoxに数値のみ入力可能...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
助けてください!スパムメール...
-
連動プルダウンについてです。
-
「戻る」ボタン使用時のフォー...
-
PHP処理実行後のページの遷移に...
-
必要時だけ必須記入にする方法
-
javascript中の記述でのJSP文<%%>
-
javascript 「戻る」を押したと...
-
submitした後にiframeのページ...
-
現在日付を初期値にするには
-
javascriptからpythonへ値の受...
-
Excelの起動
-
毎週決まった曜日から数日間だ...
-
ウェブフォームにjavascriptは...
-
ボタンに複数機能を持たせられ...
-
javascriptでCGIに値を渡したい...
-
Ajax以外で、JavaScriptからPHP...
-
javascript 選択した値のみを送...
-
Onclickイベントでデータをcgi...
-
javascriptでクッキーを書き出...
-
JavaScriptで月に対して日の整...
おすすめ情報