MULTIPLEってどうやって使うんですか?

[上に] [前に] [次に]
じぇい 1999/06/11(金) 23:26:34
フォームのセレクトタグで、複数選択を可能にするMULTIPLEってありますよね?あれはどうやって使うのでしょうか?
一度、どういう風に値が送られてくるのか調べようとしたのですが、下のようにしてフォームから受け取った値を見ると、最後に選択した値のみが入ってました。
<select name=... multiple>
<option value=...>
<option value=...>
<option value=...>
</select>

MULTIPLE、、って一体どうやって使えばいいのでしょうか?

羽崎 1999/06/12(土) 00:13:41
選択肢の中からひとつ選ぶだけです。ラジオボタンやmultipleなしの<select>と同じ。

複数選択はcheckboxの方法しか私は知りません。

じぇい 1999/06/12(土) 00:18:25
あっ、、そうなんですか?
でも、、タグの説明には、MULTIPLEを使うと複数選択が可能になる、、って書いてあるんですが、、。
どういう意味なのでしょうか?

羽崎 1999/06/12(土) 00:52:18
勘違いしてました(^^;。動きはcheckboxと同様です。
<select name="number" multiple>
<option value=>1
<option value=2>2
<option value=3>3
<option value=4>4
<option value=8>5
</select>
を、getするとわかりますが、
?number=1&exel=3
となります。ので、処理的にうまいことやらないと、最後の値しか
はいらなくなります。私は値が複数合った場合、配列を作ってそこにぶちこんでます。
(ここらへんの処理ってみなさん具体的にどういうスクリプトにしてるんでしょう?)

羽崎 1999/06/12(土) 00:54:30
訂正
>×?number=1&exel=3
○?number=1&number=3

羽崎 1999/06/12(土) 00:56:43
再訂正
>×<option value=>1
○<option value=1>1

じぇい 1999/06/12(土) 01:03:59
[[解決]]
なるほど。
わかりました。
要するにGetを処理するときと同じような処理をしたらいいんですね。
、、でもNAMEが全部いっしょだから、、、、んん、、??
、、やってみます。^^;

どうもありがとうございました。

じぇい 1999/06/12(土) 01:11:08
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'});
@a = split(/&/, $query_string);
foreach $x (@a) {
($name, $value) = split(/=/, $x);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
$value =~ s/&/&amp;/g;
$value =~ s/"/&quot;/g;
push(@$name, $value);
}
}

こんな感じの処理であってますでしょうか?^^;

B-Cus 1999/06/12(土) 01:16:04
> こんな感じの処理であってますでしょうか?^^;
さてね…UAによっては
 ?number=1&3
を送ってきたりなんかしちゃったりして(未確認)。

じぇい 1999/06/12(土) 01:31:04
値がちゃんと渡されていることを確認できました。
どうもありがとうございました。

>…UAによっては
、、UA、、というのは何でしょうか?(すいません。馬鹿な質問をして…。)

羽崎 1999/06/12(土) 01:52:11
>?number=1&3
クエリーがUAに依存する一例だとは思うんですが、仮にこんなふうだったら、&の意味って・・・

>、、UA、、というのは何でしょうか?
UserAgent(このばあい、たいていWebClient)のことでしょう。

[上に] [前に] [次に]