- ベストアンサー
アンケートの質問を複数にしたい
先日「アンケート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> お分かりになる方がいらっしゃいましたら、ヒントでも結構ですのでどうかご教授下さいますようお願い致します。
- みんなの回答 (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> : :
その他の回答 (1)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
フォームから送信されるデータは、順次ハッシュないし配列に保存されます。 nameをハッシュ名に、その値をそのハッシュの値に入れると、同nameがあると当然上書きされてしまいます。名前が異なれば問題ない。 解決方法として、順次配列に入れていくか、すでにハッシュ値がある場合は、追記するようにすれば良いです。 push @names,$name; push @value,$value; とか if($hash{"$name"}ne ''){ $hash{"$name"}.=$value;} とか、アンケートによって、ご自由にどうぞ・・
お礼
ご回答頂きありがとうございました。 また、お礼が遅くなり、誠に申し訳ありませんでした。
お礼
ご回答頂きありがとうございました。 また、お礼が遅くなり、誠に申し訳ありませんでした。