プロが教えるわが家の防犯対策術!

初心者です(CGI・PHPを一人でプログラミングすることは出来ません。HTMLコーディングは出来る程度です。)。
オンラインショップの作成をしており、うまくいかなくなりご相談させていただきたいと思います。
FreeCart.jp(http://www.freecart.jp/cart8.html)のCGIを使っています。
使用例サンプル:http://www.freecart.jp/cart3.html

<form Action="http://domain.com/cgi-bin/acart/setcook.cgi" METHOD=POST>
<INPUT TYPE="hidden"NAME="shouhinmei" VALUE="商品名:あああ">
<INPUT TYPE="hidden" NAME="kakaku" VALUE="100">
<select name="shouhinnumber">
<option>候補をお選びください</option>
<option value="aaa">商品名:あああ</option>
<option value="bbb">商品名:いいい</option>
<option value="ccc">商品名:ううう</option>
<option value="ddd">商品名:えええ</option>
</select>
数量<input name="kazu" type="text" size="4" />
<INPUT NAME="SUBMIT" TYPE="SUBMIT" VALUE="カートにいれる">
</FORM>

このフォームまでは作成できました。
このままですと、name="shouhinnumber"(商品NO)は「aaa」や「bbb」と変更可能なのですが、NAME="shouhinmei"(商品名)は全て「あああ」となってしまいます。
やりたいことは、プルダウンメニューで選択し、商品NOの値を選択すれば、自動的に商品名の値も対応したものが選択でき、カート内に明記できることです。
商品価格はすべて同じです。


少々表現が分かりにくいかもしれませんが、ご教授いただければ幸いです。
よろしくお願いいたします。

A 回答 (1件)

shouhinnumberが商品名を一意に識別できるもの、つまりshouhinnumberがaaaだったら商品名は「あああ」になるというデータをファイルかDBで持たせているなら、hiddenでshouhinmeiを送信する必要はないのですが・・・。


CGI側がどういう動きになっているかわからないので、ひとまずその話は置いといて、一番手っ取り早いと思われるのはJavaScriptを利用する方法です。

すべての商品が同じ金額ではないことを想定して、ここでは金額もselectの選択に合わせて変更します。

<script language="javascript" type="text/javascript">
<!--
function setInfo(number)
{
if (number == 'aaa') {
document.getElementById('shouhinmei').value = "商品名:あああ";
document.getElementById('kakaku').value = "100";
} else if (number == 'bbb') {
document.getElementById('shouhinmei').value = "商品名:いいい";
document.getElementById('kakaku').value = "200";

} else if (number == 'ccc') {
document.getElementById('shouhinmei').value = "商品名:ううう";
document.getElementById('kakaku').value = "300";
...略...
} else {
// 何も選択されていないか不明なshouhinnumber
document.getElementById('shouhinmei').value = "";
document.getElementById('kakaku').value = "";
}
}
//-->
</script>

<form>
<INPUT TYPE="hidden" NAME="shouhinmei" ID="shouhinmei" VALUE="">
<INPUT TYPE="hidden" NAME="kakaku" ID="kakaku" VALUE="">
<select name="shouhinnumber" onChange="setInfo(this.value)">
<option value="">候補をお選びください</option>
<option value="aaa">商品名:あああ</option>
<option value="bbb">商品名:いいい</option>
<option value="ccc">商品名:ううう</option>
<option value="ddd">商品名:えええ</option>
</select>
...略

こんな感じで動くのではないかと。
動作確認はしていません。あしからず。
    • good
    • 0
この回答へのお礼

ありがとうございます!
早速やってみまして、無事動くことができました!

お忙しいところ、お力添えいただき、感謝いたします!
ありがとうございました!

お礼日時:2009/03/09 10:55

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