- 締切済み
CGI内での条件分岐について教えてください。
CGI内での条件分岐について教えてください。 買い物カートCGIの中で下記のラジオボタンの選択において入力フォームを表示・非表示に切り替える質問をしたばかりですが、 <input type="radio" value="1" onclick="func1()" name="gift" checked />1ヶ所 <input type="radio" value="2" onclick="func2()" name="gift" />3ヶ所 <input type="radio" value="3" onclick="func3()" name="gift" />5ヶ所 今度は入力後の確認画面にて上記で選択された内容によって。。。 value1の場合は1ヶ所分の発送先住所、value2の場合は3ヶ所分の発送先住所・・・ と言った感じで表示をさせたいのですが、条件分岐に関してどのようにしたら良いのか分からず質問をさせて頂きます。 require "cgi-lib.pl"; ReadParse(*input_data); if ($input_data{'gift'} eq "1") { ※value1で入力した1件分の発送先住所 } elsif ($input_data{'gift'} eq "2") { ※value2で入力した3件分の発送先住所 } else { ※value3で入力した5件分の発送先住所 } とか、試してみましたがだめでした(泣 CGI(Perl)に関しては初心者的で少々初心者レベルで触る程度の技術レベルです(汗 どうしたら良いのか教えてください。 思い当たる点は、そもそも条件式の中にある"gift"はどこかで指示を出さないとCGIの中で認識されていないのでは?とも思っています。 実際に上記の例でカートの確認ページを表示すると、 if ( eq "1") { } else ( eq "2") { } else { } と表示されるので素人ながらそう思いました。 質問がへたですが宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- toraneko75
- ベストアンサー率51% (27/52)
買い物カートCGIのスクリプトがわからないので的を得ていない答えになるかもですが、 住所は前のフォームで入力済みということでしょうか? それでしたら、&ReadParseでフォームデータを取り出したらいいと思います。 まだ入力されていないということでしたら新たにINPUTフォームを作るということですね。 それとも住所は別途テキストファイルに入っているということなのでしょうか? ところでフォームデータ処理するならCGI.pmのほうが使い勝手がいいと思います。
補足
ご親切にアドバイスを頂きありがとうございます。 先ず、カート自体は今はもう配布されていませんが、cart_hal_pro_A8と言うCGIカートプログラムで昔シェアで購入したものがあり勉強がてら触ってみようと思いました(汗 流れ的には、商品購入(HTML)→かごの中確認(cart.cgi)→お客様情報入力(form.cgi)→入力内容確認(form.cgi)→購入確定(send.cgi)といったファイルの流れにナリ、メインはform.cgiの中で行われているのが殆どです。 今回の分岐に関しましてもform.cgi内で入力された情報を次ページの確認画面で表示するわけですが、form.cgi内ではヒアドキュメントとして書き出されている部分内でのifでの分岐は出来ないものかと考えています。 CGI.pm・・・ちょっと勉強してみます(汗