アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。
現在、ショッピングカートのCGIを利用するためにHTMLを調整しています。

【単一商品の場合】
<FORM action="cgi-bin/cart/cart.cgi" method="POST"><INPUT type="hidden" name="shouhinnumber" value="0001"><INPUT type="hidden" name="shouhinmei" value="高級シャンプー"><INPUT type="hidden" name="kakaku" value="3000">

あとはセレクトフォームで数を選択して送信すれば正常に料金計算されるのですが、これが、内容量によって料金が異なる場合、どのようにHTMLを組めばよろしいのでしょうか。

ラジオボタンでそれぞれの行にINPUTを入れたが、先頭のINPUTしか認識せず、フォーム文を複数作るとマージンが空き、複数選択が可能になってしまう。

なお、CGIをいじるのは危険なので、HTML内でどうにかしたい・・・。

つまり・・・
高級シャンプーの
260mlが1800円
500mlが3000円
というように単一商品名で代金が異なるものを1つのフォーム内でCGIへ送信できないでしょうか。

よろしくお願いいたします。

A 回答 (2件)

JavaScriptを使えば可能です。



(例)
<HTML>
<HEAD>

<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
<script type="text/javascript">
<!--
// shouhinnumberとkakakuに値をセットする処理
function setvalue(shouhinnumber, kakaku) {
frm = document.getElementById("form1");
frm.shouhinnumber.value = shouhinnumber;
frm.kakaku.value = kakaku;
}

// ラジオボタンが選択されているかをチェックする処理
function checkform() {
frm = document.getElementById("form1");
for (i=0; i<frm.bikou1.length; i++) {
if (frm.bikou1[i].checked) {
// alert(frm.bikou1[i].value+"\n"+frm.shouhinnumber.value+"\n"+frm.kakaku.value);
// 選択されていたので送信
frm.submit();
return;
}
}
// 選択されていなかったのでエラー
alert("商品を選択してください");
}
//-->
</script>

</HEAD>
<BODY>

<FORM id="form1" action="~" method="~">
<INPUT type="hidden" name="shouhinnumber" value="">
<INPUT type="hidden" name="kakaku" value="">
<INPUT id="m260" type="radio" name="bikou1" value="M (260ml)" onClick="setvalue('FH26M', 1800);"><LABEL for="m260">乾燥肌の方:M (260ml)</LABEL> <BR>
<INPUT id="m500" type="radio" name="bikou1" value="M (500ml)" onClick="setvalue('FH50M', 3400);"><LABEL for="m500">乾燥肌の方:M (500ml)</LABEL><BR>
<INPUT id="n260" type="radio" name="bikou1" value="N (260ml)" onClick="setvalue('FH26N', 1600);"><LABEL for="n260">脂性肌の方:N (260ml)</LABEL><BR>
<INPUT id="n500" type="radio" name="bikou1" value="N (500ml)" onClick="setvalue('FH50N', 3000);"><LABEL for="n500">脂性肌の方:N (500ml)</LABEL><BR>
<INPUT type="button" value="送信" onClick="checkform();">
</FORM>

</BODY>
</HTML>

この回答への補足

これを複数設置する場合はどこを書き換えればいいのですか??

補足日時:2004/03/09 02:45
    • good
    • 0

ラジオボタンでやるのなら


<input type="radio" name="kakaku" value="1800">260ml<br>
<input type="radio" name="kakaku" value="3000">500ml<br>

プルダウンメニューなら
<select name="kakaku">
<option value="1800">260ml
<option value="3000">500ml
</select>

とすれば良いと思います。

この回答への補足

お返事いただき、ありがとうございます。
これが失敗している状態です。
<LABEL><INPUT type="radio" name="bikou1" value="M (260ml)"><INPUT type="hidden" name="shouhinnumber" value="FH26M"><INPUT type="hidden" name="kakaku" value="1800">乾燥肌の方:M (260ml)<BR></LABEL>
<LABEL><INPUT type="hidden" name="shouhinnumber" value="FH50M"><INPUT type="hidden" name="kakaku" value="3400"><INPUT type="radio" name="bikou1" value="M (500ml)">乾燥肌の方:M (500ml)<BR></LABEL>
<LABEL><INPUT type="hidden" name="shouhinnumber" value="FH26N"><INPUT type="hidden" name="kakaku" value="1600"><INPUT type="radio" name="bikou1" value="N (260ml)">脂性肌の方:N (260ml)<BR></LABEL>
<LABEL><INPUT type="hidden" name="shouhinnumber" value="FH50N"><INPUT type="hidden" name="kakaku" value="3000"><INPUT type="radio" name="bikou1" value="N (500ml)">脂性肌の方:N (500ml)</LABEL>

やはり、上記のように、商品番号・備考(タイプ)・価の3つを送るのは不可能・・・??

補足日時:2004/03/04 19:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!