• ベストアンサー

アンケートの質問を複数にしたい

先日「アンケートCGIについて」という表題で質問させて頂きました。 ご回答下さいました方々、その節はどうもありがとうございました。 また行き詰まってしまったので、ご教授下さいますようお願い致します。 http://www.rescue.ne.jp/cgi/weban/の、アンケートを使わせて頂いております。 このCGIは、通常ひとつの質問のみ対応しているのですが、これを修正して複数の質問を設置したいと考えております。 CGIは、http://www.rescue.ne.jp/cgi/weban/dl/an.cgiに保存されているのですが、これのどの部分を修正すれよいのでしょうか? HTMLの【name】は"regist"になっており、CGIの"regist"部分を修正すればよいのかと思ったのですが、知識不足で修正することができませんでした。 index.html(フォームページ) <input type=checkbox name="regist" value="項目1">項目1<br> <input type=checkbox name="regist" value="項目2">項目2<br> お分かりになる方がいらっしゃいましたら、ヒントでも結構ですのでどうかご教授下さいますようお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.2

方法はいくつかあるでしょうが、回答項目の type属性値がcheckboxで、name属性値が同じなら、フォームからの投稿データは単純に保存しているだけでしょうから、次のように、たとえば name属性値に連番を付けて追加すれば、質問はいくつでも増やせるでしょう。 ◆質問2<br> <input type=checkbox name="regist2" value="項目21">項目21<br> <input type=checkbox name="regist2" value="項目22">項目22<br> ◆質問3<br> <input type=checkbox name="regist3" value="項目31">項目31<br> <input type=checkbox name="regist3" value="項目32">項目32<br>  :  :

patsaysnow
質問者

お礼

ご回答頂きありがとうございました。 また、お礼が遅くなり、誠に申し訳ありませんでした。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

フォームから送信されるデータは、順次ハッシュないし配列に保存されます。  nameをハッシュ名に、その値をそのハッシュの値に入れると、同nameがあると当然上書きされてしまいます。名前が異なれば問題ない。  解決方法として、順次配列に入れていくか、すでにハッシュ値がある場合は、追記するようにすれば良いです。  push @names,$name;  push @value,$value; とか  if($hash{"$name"}ne ''){ $hash{"$name"}.=$value;} とか、アンケートによって、ご自由にどうぞ・・

patsaysnow
質問者

お礼

ご回答頂きありがとうございました。 また、お礼が遅くなり、誠に申し訳ありませんでした。

関連するQ&A

専門家に質問してみよう