フォームから送られた複数データの保存

[上に] [前に] [次に]
みや 1999/08/09(月) 21:57:40
フォームページからデータを送り、下記のような形でファイルに保存しています。
radio、selectで単一項目を選択する場合や、テキスト入力の場合はうまくいくのですが、
<input type="checkbox" name="2" value="A">A 
<input type="checkbox" name="2" value="B">B 
<input type="checkbox" name="2" value="C">C 

のように、checkboxで複数選択した場合に一つしか保存されません。
この処理では至極当然の結果なのですが……。
複数のデータを保存する方法が分かる方、教えて下さい。

$value = "$FORM{'1'}\,$FORM{'2'}\,$FORM{'3'}\,$FORM{'4'}\n";
push(@lines,$value);

if (!open(DB,">$file")) { &error(1); }
print DB @lines;
close(DB);

ST 1999/08/09(月) 22:05:47
radioとは違い,checkboxは同じ名前で使う物ではありません。

ST 1999/08/09(月) 22:15:25
$buffer = '2=AA&2=BB&2=CC';

@pairs = split(/&/,$buffer);
ごめんなさい。

foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
if ($FORM{$name} eq '') { $FORM{$name} = $value; }
else { $FORM{$name} .= '+' . $value; }
}

こんな感じでは?

ST 1999/08/09(月) 22:16:20
↑あいさつの挿入位置がおかしかった(^^;

ST 1999/08/09(月) 22:18:26
あと,
$buffer = '2=AA&2=BB&2=CC';
はテスト用の文字列です。無視してください。(もっと落ち着けって>自分)

みや 1999/08/10(火) 07:03:51
[[解決]]
教えていただいた方法で、うまくいきました。
ありがとうございました!

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