プロが教えるわが家の防犯対策術!

下記の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>

A 回答 (5件)

No.1です。


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

<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>
    • good
    • 0

よくわからないけど、


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)">
    • good
    • 0

選択したもの、してないものすべてを送るの必要性がわかりません。


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

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

この回答への補足

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

補足日時:2008/03/20 16:42
    • good
    • 0

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



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

この回答への補足

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

補足日時:2008/03/20 16:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!