• 締切済み

フリーのカートCGIを基にカスタマイズしているのですが、どうしても解決

フリーのカートCGIを基にカスタマイズしているのですが、どうしても解決できない問題が出て困っています。 チェックボックスの「VALUE」で複数の値を設定し、それを分割させて反映したいのですが、どうしても出来ません。 【HTML】 <INPUT TYPE = "checkbox" NAME = "option1" VALUE = "オプション1,5000" /> オプション1を追加(+¥5,000円)   <INPUT TYPE = "checkbox" NAME = "option2" VALUE = "オプション2,2500" /> オプション2追加(+¥2,500円) 【CGI】 print <<EOM; <th class="th1">オプション</th> <th class="th1">合計</th> my (%option1name,%option1price); @furirua = split(/,/ , option1); $option1name = $option1[0]; $option1price = $option1[1]; my (%furirubname,%furirubprice); @option2 = split(/,/ , option2); $option2name = $option2[0]; $option2price = $option2[1]; print "<td align=\"center\" class=\"td1\">$option1name<br>$option2name</td>"; my $kei2 = ($price{$code} + $option1price + $option2price) * $num; my $kei3 = &comma($kei2); print "<td align=\"right\" class=\"td2\">$kei3円</td>"; VALUEの最初の値は「オプション名」次が「価格」です。(項目は「製品名」等他にもあります) カート内でそれぞれに分かれて、「オプション名」は「オプション」の項目内に、 「価格」は本体価格($price{$code})と合計して個数($num)で掛けた値を「合計」出す。 上記のやり方だと、「オプション」の項目に、オプション1のVALUEが2つとも表示されてしまいます。 また一つだけ選ぶと、減った分?VALUEの項目がずれてしまいました。 こんな状態です。 【例】 <th class="th1">オプション</th> <td>オプション1<br>5000</td> オプション2の内容は次の項目に反映されてしまいます。 目標は 【例】(本体価格10,000円 オプション1と2を選択) <th class="th1">オプション</th> <th class="th1">合計</th> <td>オプション1<br>オプション2</td> <td>17,500円</td> CGIはまだあまり詳しくなく、いろいろ調べて試しながらカスタマイズしているのですが、今回のチェックボックスは全然解決できず時間も無くなってきました。 すみませんが、宜しくお願いします。

みんなの回答

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.1

あてずっぽうですが、以下の変更でどうなるでしょうか? my (%option1name,%option1price); @furirua = split(/,/ , option1); $option1name = $option1[0]; $option1price = $option1[1]; my (%furirubname,%furirubprice); @option2 = split(/,/ , option2); $option2name = $option2[0]; $option2price = $option2[1]; ↓   ↓   ↓変更 use CGI; my $q = new CGI; my ($option1name, $option1price) = split /,/, $q->param("option1"); my ($option2name, $option2price) = split /,/, $q->param("option2");

eos1941
質問者

補足

ありがとうございます。 早速試してみましたが、うまくいきませんでした。 それからチェックボックスが一つでも外れていると、その分VALUEのがずれてしまうので、 VALUEが空の時にも対応するものを入れておかなければならないのか? 難しいですね…。 もう少し調べてみて、どうしようも無くなったら ラジオボタンに切り替えようかと思います。 (こっちは問題なくできています。) ほんとは、使い勝手のよさからチェックボックスにしたいのですが…。

関連するQ&A