
<input>の選択肢をプルダウンメニューから受け取り、hiddenで渡したいのですが、どうすればよいでしょうか?
▽プルダウン例
<FORM>
<SELECT>
<OPTION SELECTED>SELECT</OPTION>
<OPTION VALUE="1">A</OPTION>
<OPTION VALUE="2">B</OPTION>
<OPTION VALUE="3">C</OPTION>
</SELECT>
</FORM>
↑上で選択した値(A or B or C)値を、↓下のvalue=「"hoge"」に渡したいです。
※選択肢は3つだけではなくて、たくさんあります。
▽input例
<input name="hosted_button_id" value="hoge" type="hidden">
http://oshiete.goo.ne.jp/qa/6016233.htmlの質問内容が知りたいことに近かったのですが、value値ではなくて、選択した内容そのものをhiddenへ渡す方法を教えてください。

No.4ベストアンサー
- 回答日時:
まずhiddenの値についてですが、
<input id="hosted_button_id" name="hosted_button_id" value="hoge" type="hidden">
↑のように初期表示の時のvalueの部分をhogeではなく、
<input id="hosted_button_id" name="hosted_button_id" value="<?php 「プルダウンの初期値の名称セット」?>" type="hidden">
↑として予めセットするだけでよいのではないでしょうか。
> APIにはジャンルIDだけ、送ればよいと思います。
> 名称を送りたいのは、遷移先のページタイトルと、遷移先のプルダウン初期表示用で使いたいためです。
> また、ジャンルIDと名称を同時に送ることについて、hiddenで送る行為自体は問題ないと思うのですが、一旦結合してsubmitで送ると、APIにジャンルIDだけが送れなくなるので、結果として、まずいのではないかと思ってます。
遷移先というのは自分で管理されているページですよね?
でしたら名称を別途送る理由が無いと思うのですが…。
最初に回答させていただきましたが、
IDをキーとして名称を値とした配列を作っておけば、
IDさえ送れば名称を決めることができるので、
それで問題ないのではないでしょうか。
APIで名称を使用しなくてもよいのであれば、
IDのみをやりとりした方がずっとシンプルですよ。
No.3
- 回答日時:
まず、例示のスクリプトがうまく動作しなかったようですみませんでした。
自分の環境では動作したので問題ないと思っていました。
> 今、お伺いしているプルダウンは、添付画像中央部分なのですが、
添付画像が見当たらないのですがどちらでしょう?
> 一旦結合して、後で分けるやり方は、難しいかなと思っていたのですが、書いていただいたコードを見たらイケそうだったので、実際に試してみました。
> やってみて初めて気付いたのですが、自分のケースの場合、このやり方では難しいことが分かりました。
> submitした時点で、APIへパラメータを投げているので、option value=の値を加工すると、その時点で処理がうまく走らなくなってしまいます。「option value=の値」「option value=を加工した値」の両方を投げればいいのか、とも思ったのですが、それだと一つのセレクトボックスでは送れないのではないかと思い、なんとか javascriptで解決したいと思っています。
他の方も疑問に思っているようですが、どんなAPIを使用したいのでしょうか。
APIにはジャンルのIDと名称を同時に送ってやらないといけないのでしょうか。
submitした時点でAPIへパラメータを投げているとは、
htmlフォーム→自サーバ→API という遷移でなく、
htmlフォーム→API→自サーバ というような流れなのですか?
この回答への補足
>添付画像が見当たらないのですがどちらでしょう?
添付しました。
>どんなAPIを使用したいのでしょうか。
楽天APIです。
>APIにはジャンルのIDと名称を同時に送ってやらないといけないのでしょうか。
APIにはジャンルIDだけ、送ればよいと思います。
名称を送りたいのは、遷移先のページタイトルと、遷移先のプルダウン初期表示用で使いたいためです。
また、ジャンルIDと名称を同時に送ることについて、hiddenで送る行為自体は問題ないと思うのですが、一旦結合してsubmitで送ると、APIにジャンルIDだけが送れなくなるので、結果として、まずいのではないかと思ってます。
>submitした時点でAPIへパラメータを投げているとは、
>htmlフォーム→自サーバ→API という遷移でなく、
>htmlフォーム→API→自サーバ というような流れなのですか?
多分、indexフォーム→API→サーバ→searchフォーム→API→サーバ→searchフォームの流れだと思うのですが、すいません、ちょっとこの辺の流れについてはまだ、勉強中で、よく分かってないため、もしかしたら、違うかもしれません。
No.2
- 回答日時:
<FORM ACTION="">
<P>
<SELECT>
<OPTION SELECTED>SELECT</OPTION>
<OPTION VALUE="A">A</OPTION>
<OPTION VALUE="B">B</OPTION>
<OPTION VALUE="C">C</OPTION>
</SELECT>
</P>
</FORM>
or
<FORM ACTION="">
<P>
<SELECT>
<OPTION SELECTED>SELECT</OPTION>
<OPTION>A</OPTION>
<OPTION>B</OPTION>
<OPTION>C</OPTION>
</SELECT>
</P>
</FORM>
value を連番で振らなければいけないなんて規則はない。
[quote cite="http://www.whatwg.org/specs/web-apps/current-wor … "]
The value attribute provides a value for element. The value of an option element is the value of the value attribute, if there is one, or the textContent of the element, if there isn't.
[/quote]
連番にしたとしても 0 ⇒ A であることが分かっているはずだから、受け取り側で何とでもなるのでは。
No.1
- 回答日時:
■JavaScriptで解決するなら
<form>
<select onchange="document.getElementById('hosted_button_id').value=this.options[this.selectedIndex].text">
<option selected>SELECT</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</form>
<input id="hosted_button_id" name="hosted_button_id" value="hoge" type="hidden">
http://okwave.jp/qa/q6217393.html
上記に解答がありますが、
■phpで解決するなら
<select name="genre">
<option value="1:ジャンル名">…となるようにし、
$tmp = explode(":", $_GET["genre"]);
list($genreId, $genreName) = $tmp;
この回答への補足
回答ありがとうございます。そのままだと識別子エラーとなったので、下記のようにしてみました。
<form action="search.php" method="get">
<select onchange="document.getElementById('hosted_button_id').value=this.options.item(this.selectedIndex).text">
あと一つだけ解決したい点があるので、追加で質問させてください。
今、お伺いしているプルダウンは、添付画像中央部分なのですが、
自分自身にsubmitして、右側のソートだけを選択して検索させた場合(onchangeさせずに、プルダウン初期値の内容で検索する場合)、内容がhiddenに送れません。
※プルダウンの初期値は、受け取った値を表示するように設定しています
※一度選択を外してまた選択し直せば正常動作します(←これをしなくてもデフォルトの値をhiddenへ渡すにはどうすればよいでしょうか。)
http://javascriptist.net/ref/event.onchange.htmlに掲載されているイベントを試してみたのですが、うまく渡りませんでした。
何かよい方法はないでしょうか?
▽PHP
一旦結合して、後で分けるやり方は、難しいかなと思っていたのですが、書いていただいたコードを見たらイケそうだったので、実際に試してみました。
やってみて初めて気付いたのですが、自分のケースの場合、このやり方では難しいことが分かりました。
submitした時点で、APIへパラメータを投げているので、option value=の値を加工すると、その時点で処理がうまく走らなくなってしまいます。「option value=の値」「option value=を加工した値」の両方を投げればいいのか、とも思ったのですが、それだと一つのセレクトボックスでは送れないのではないかと思い、なんとかjavascriptで解決したいと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
select値をhiddenのvalueに渡したい
HTML・CSS
-
Java-jspの画面入力値保持について
Java
-
リクエストに応じたselectedの初期値設定方法
Java
-
-
4
getParameterで値が取得できず、困ってます
HTML・CSS
-
5
Javascriptの値をJava(JSP)へ渡す方法
Java
-
6
セレクトメニューで2つの項目や値を渡す方法はありますか?
HTML・CSS
-
7
プルダウンで選択すると、DBの値を取得したい
JavaScript
-
8
JSPでリンクを利用してパラメータを次画面に渡す方法について。
Java
-
9
hiddenの値が期待した値で取得されないのです
Java
-
10
JSPからJSPへ情報を渡せる?
Java
-
11
jspからjavascriptの変数引継ぎ
JavaScript
-
12
jsp~jspにhiddenを使って変数を飛ばしたい
JavaScript
-
13
JSPとJavaScriptの連携について教えて下さい
JavaScript
-
14
input type=hidden"で送る値を、セレクトした内容に応"
PHP
-
15
テーブルの任意の列を非表示にしたい
HTML・CSS
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンとプルダウンを連...
-
プルダウン選択を変更すると、...
-
<input>の選択肢をプルダウンメ...
-
EclipseでSpringを使用し、テー...
-
特定<table>内の<td>の色を変える
-
javascriptで入力フォームが空...
-
inputのvalueを変数として使うには
-
history.backの前に値をクリア...
-
VBSでブラウザ上のテキストボッ...
-
プルダウン 項目が多いので先頭...
-
ツリービューのチェックボック...
-
formのsubmitイベントの発生に...
-
<form action="#">の意味とは?
-
子ウィンドウのデータを親ウイ...
-
1つのページにformを2つ設置。2...
-
submitするとなぜか2度実行する
-
checkboxの選択数制限と排他処...
-
リセットボタンでクリアできな...
-
ボタンが押されると同時にデー...
-
2つのフォームに値を入れて計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptでoptionタグを削除...
-
<input>の選択肢をプルダウンメ...
-
プルダウン選択を変更すると、...
-
selectを変更不可にしたい
-
javascriptでセレクトボックス...
-
スマホのフォームでのselect複...
-
プルダウンメニューの件でお願...
-
【JS】selectでchangeした時の...
-
Selectボックスの一覧表示方法
-
AxWebBrowserで開いたWebページ...
-
selectを使った計算
-
selectボックスで選択数を制限...
-
プルダウンメニューのvalue値を...
-
セレクトボックスで選択した内...
-
セレクトメニューの値の取得
-
ラジオボタンとプルダウンを連...
-
プルダウンの選択内容を次のペ...
-
C#(csファイル)とjavascriptと...
-
複数のプルダウンを1つにまとめ...
-
同じ名前のセレクトがある場合...
おすすめ情報