(再)チェックボックスでのデータの受け取り方
[上に]
[前に]
[次に]
もーちゃん
2000/05/23(火) 13:28:42
一度は解決マークを付けた質問と同じですが、
色々見て試してみても、うまく行かないので改めて質問させてください。
やりたいことは2つで、
1.6つのチェックボックスのうち1つは必須。(どれを選んでもいい。複数選択も可)
2.テキストで受け取ったデータを後でDBにインポートするため、
オフのときも「0」などのデータがはいるようにしたい。
「110101」などの配列で受け取る方法があれば、一番分かりやすいんですけど、
他に方法があるなら、それでもかまいません。
どなたかご存知の方、よろしくおねがします。
wosamu
2000/05/23(火) 13:41:34
いったいなにで受け取るのか不明なので何ともいえませんけど、
cgiで受け取るなら、プログラム側でNAMEがない値を0にすればいいのじゃないですか?
どういうコードを書いて、どういう動作を期待されているのか今ひとつ理解できないです。
あと、これ緑ラウンジあてじゃ無いのじゃないですか?
dddd
2000/05/23(火) 13:41:54
配列を用意して、オフなら0、オンなら1を代入していけば良いだけでは?
もーちゃん
2000/05/23(火) 14:12:52
>wosamuさま
説明不足ですみません。
HTMLの問題だと思って、「緑」しました。
「赤」の方が適切でしょうか?
オンラインでの申し込みフォームで、htmlファイルとcgiファイルは
それぞれ次のようになっています。
[HTML]
<input type=checkbox name=aaa value=1>1
<input type=checkbox name=aaa value=1>2
│
<input type=checkbox name=aaa value=1>6
[CGI]
#入力されているかチェック
#チェックが1つもされていなかったら、エラー画面(&error)
if($aaa eq ""){&error;}
else{&ok}
#エラーじゃなかったら、いっこずつにわける
sub ok{
@aaa=split(/\0/,$in{aaa});
$aaa0=$aaa[0]; ・・・ $aaa5=$aaa[5]
#テキストファイルに書きこむ
open (IN,">>abc.txt");
print IN "$aaa0,$aaa1,$aaa2,・・・$aaa5\n";
close (IN)
これで実行すると、チェックされていなくてもok時の処理が実行されます。
>ddddさま
代入するということは、HTMLではnameが別のものを作るということでしょうか?
その場合、「どれか一個はチェックが必須」のチェックは
if(($aaa1 eq "")&&($aaa2 eq "")&&…)
{
&error}
ということになりますか?
cgiのほうも見よう見真似なので、なかなか応用できない状況です。
よろしくお願いします。
ヒソカ
2000/05/23(火) 14:37:39
入力チェック済ませた後で、わざわざ要素を分解するんなら、
別々のデータで良いような気が・・・
配列にこだわる理由は?
どうしても、後処理で配列を使ったほうが効率がいいのなら、
受け取った値を配列にほり込んだらいいような・・・
> 「110101」などの配列
このような形は文字列では?
もーちゃん
2000/05/23(火) 14:50:05
[[解決]]
別々のデータにしなかったのは、
「どれかひとつでもチェックされてればOK
全部空白だったらエラー」
にしたかったからなんですけど、
「全部空白なら」っていうif文を書けばいいんですよね。
(これを最初思いつかなくて…)
どうにかHTMLがわで言い方法はないかと思って、
悪あがきしてしまいました。
別々に集めて、CGI側の処理を工夫する
方向でやって見ます。
レスを下さった皆さん、ありがとうございました。
[上に]
[前に]
[次に]