• 締切済み

アンケートフォームの設定について

質問が1-1、1-2、1-3とあるのですが、その1-1質問中で「はい」と答えた方のみ1-2へ、更に1-2でも「はい」と答えた方が1-3まで回答いただく設定にし、1-1で「いいえ」と答えれば、次の1-2以降は答えなくても良いようにするにはどのようにすればよいのでしょうか?※csvデータ「いいえ」の回答の際は1-1 いいえ、1-2、1-3はブランクとなるような設定が理想ですが。 省略 # form.htmlよりデータを変数に代入 $d[0]=$in{'name'}; $d[1]=$in{'sex'}; $d[2]=$in{'age'}; $d[3]=$in{'q1-1'}; $d[4]=$in{'q1-2'}; $d[5]=$in{'q1-3'}; $d[6]=$in{'q2-1'}; $d[7]=$in{'q2-2'}; $d[8]=$in{'q2-3'}; # 未入力チェック  if($d[0] eq ""){$error[0]="名前入力";} if($d[1] eq ""){$error[1]="性別を入力";} if($d[2] eq ""){$error[2]="年齢を入力";} if($d[3] eq ""){$error[3]="質問1-1を入力";} if($d[4] eq ""){$error[4]="質問1-2を入力";} if($d[5] eq ""){$error[5]="質問1-3を入力";} if($d[6] eq ""){$error[6]="質問2-1を入力";} if($d[7] eq ""){$error[7]="質問2-2を入力";} if($d[8] eq ""){$error[8]="質問2-3を入力";} # データをカンマ区切りにしてdata.csvに保存 $data=join(",",$d[0],$d[1],$d[2],$d[3],$d[4],$d[5],$d[6],$d[7],$d[8])."\n"; open(FH,">>./data.csv"); print FH $data; close FH; 省略

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

このCGIに入力データが送信された時点では、 すでに、答えが入力されている前提なので、 ある回答以降答えなくて良いというような場合には、 質問フォームのあり方自体を変える必要があると思います。 そうではなくて、 ある質問の答えによって他の質問の答えが空白で良いということなら、単純にそれらの値を調べれば良いだけだと思います。 あるいは、強制的に値をブランクに置き換えるとか。

関連するQ&A