みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

selectのすべての値を送信する方法

下記のselectのすべての値(りんご、みかん、ぶどう、 もも、さくらんぼ)
をPOSTで送信する方法はありますでしょうか。
わかる人がいましたら教えてください。

<form name="theform" method="POST" action="example.php">

<p>
好きな果物:
<select name="fruit3" multiple>
<option value="りんご">アップル</option>
<option value="みかん">オレンジ</option>
<option value="ぶどう">グレープ</option>
<option value="もも">ピーチ</option>
<option value="さくらんぼ">チェリー</option>
</select>
</p>

<p><input type="submit" value="送信する"></p>

</form>

投稿日時 - 2008-03-20 15:28:18

QNo.3879310

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

No.1です。
もしかしたら、意図がまだ理解仕切れてないかもしれませんが、
OnSubmitで起動すfunction内で、該当selectの全optionの値をとってこれないですか?
それをhiddenで適当な器の値として入れ込めて一緒に送ればサーバに送信できると思います。

投稿日時 - 2008-03-20 23:30:21

ANo.4

<html>
<body>
<form name="theform" method="POST" action="example.php">
好きな果物:
<select name="fruit3" multiple>
<option value="りんご">アップル</option>
<option value="みかん">オレンジ</option>
<option value="ぶどう">グレープ</option>
<option value="もも">ピーチ</option>
<option value="さくらんぼ">チェリー</option>
</select>
<input type="hidden" name="list">
<input type="button" value="送信する" onClick="
var obj=document.getElementsByName('fruit3')[0];
var dt=[];
for(i=0;i<obj.options.length;i++){
dt[i]=obj.options[i].value;
}
document.getElementsByName('list')[0].value=dt.join('/');//文字の区切りは/
document.getElementsByName('list2')[0].value=dt.join('/');
//そして送信処理
"><br>
Sample:<input type="text" name="list2">
</form>

投稿日時 - 2008-03-20 17:37:51

ANo.3

よくわからないけど、
selectのコピーを作って名前を変え、全部を選択した状態にしてはどうでしょう?
<script type="text/javascript">
function sample(F){
var S = F.elements['fruit3'];
var S2 = F.appendChild(S.cloneNode(true));
S2.name = 'fruit3all';
S2.style.display='none';
for(var i=0;S2.options[i];i++)
S2.options[i].selected = true;
}
</script>

<form ~ onsubmit="sample(this)">

投稿日時 - 2008-03-20 17:36:35

ANo.2

選択したもの、してないものすべてを送るの必要性がわかりません。
サーバ側のプログラムで何をしようとしているのかちょっとわかりませんが、必要な情報、やりたいことを整理した方がいいかもしれません。
selectに出す値は、固定もしくはDBなどで動的にとってくるものと考えられると思います。つまり、クライアントのWebブラウザで表示される前に、サーバがその選択可能な項目をすべて持っているはずです。
静的なページなら、すべてを送り返してもらう必要はまったくなく、選択可能なものすべてが静的で固定になります。

DBなどから持ってきたものをクライアントに送信しているのであれば、選択されたものが送られてきたもの意外を再度DBから探せると思います。
クライアントに送る際に、なんらかの条件での検索結果を選択肢とするなら、その条件をセッション変数などで保持しておけば、サーバ側で、再度同じ結果を取得できますが、それができないということでしょうか?

投稿日時 - 2008-03-20 16:35:21

補足

今行っているプログラムは
<select name="a" multiple> と<select name="b" multiple> があり、javascriptで値がa,bのselectを移動できるようになっています。
送信したときにどちらのselectに入っていた値なのか知りたいため、選択したもの、してないものすべての値を送信したいのですが。

投稿日時 - 2008-03-20 16:42:06

ANo.1

送信するのは、submitボタンが押されたらブラウザが自動で送ってくれるはずですが、複数選択の仕方がわからないということでしょうか?

普通にクリックすると1つしか選択できませんが、Ctrlを押しながらクリックすると複数選択できます。
また、Shiftを押しながら上下キーで連続的に選択も可能です。

投稿日時 - 2008-03-20 15:40:50

補足

選択したもの選択していないものすべてを送信したいのです。

投稿日時 - 2008-03-20 16:01:32

あなたにオススメの質問