こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

価格計算フォーム作成について

初心者です。次のような書籍注文フォームを作成しております。
(BODYタグも必要の場合お教え下さい。)
CGIは借りており、テーブルの数など変更するとうまく送信できないようです。
フォームへは、各冊数、合計冊数、送料、合計金額の順に入力できるようなっております。また、実際は、書籍(1)、(2)のみ現在使用できるようなっています。
修正しているのですが、動作が正しく動いてくれない状況です、どこを変えたら正しく動作しますでしょうか?
申し訳ありませんが、なかなか解決せずご教示いただけると嬉しいです。

以下コード↓
-------------------------------------------------


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 6.5.2.0 for Windows">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE>書籍販売 メイン</TITLE>
<SCRIPT language="JavaScript">
<!--

//冊数を記述(フォームを使用できるのは書籍(1)、(2)のみ。(3)~(7)は記録として残されている。)
function CountBooks()
{
//var i1 = document.form.書籍(1).selectedIndex;
//var i2 = document.form.書籍(2).selectedIndex;
//var i3 = document.form.書籍(3).selectedIndex;
//var i4 = document.form.書籍(4).selectedIndex;
//var i5 = document.form.書籍(5).selectedIndex;
//var i6 = document.form.書籍(6).selectedIndex;
//var i7 = document.form.書籍(7).selectedIndex;
var i1 = document.form1.elements[14].selectedIndex;
var i2 = document.form1.elements[15].selectedIndex;
var i3 = document.form1.elements[16].selectedIndex;
var i4 = document.form1.elements[17].selectedIndex;
var i5 = document.form1.elements[18].selectedIndex;
var i6 = document.form1.elements[19].selectedIndex;
var i7 = document.form1.elements[20].selectedIndex;


//送料計算(書籍(1)(単価:300円)のみ適用。1~5冊なら160円、6冊以上なら960円。))
function GetSouryou(i1)
{
var iSouryou = 0;
if (i1 < 1)
iSouryou = 0;
else if (i1<6 )
iSouryou = 160;
else if (i1 < 1000)

iSouryou = 960;
else
iSouryou = 0;
}


//書籍(1)の単価×冊数を計算

var ikakaku1 = document.form1.elements[14].selectedIndex; * 300;

//書籍(2)の単価×冊数を計算
  var ikakaku2 = document.form1.elements[15].selectedIndex; * 1000;


//合計金額を計算
function GetGoukeiKinGaku(iCount,iSouryou, iKakaku1, iKakaku2)
{

var iGoukei = 0;

iGoukei = (iSouryou * iKakaku2)+ikakaku1;
iGoukei = Math.floor(iGoukei);
iGoukei = Kanma(iGoukei);
document.form1.elements[23].value = iGoukei;
}

//数値に3桁カンマを追加
function Kanma(iValue)
{
iValue=new String(iValue);
Leng=iValue.length;
if(Leng%3 == 0)
Atai=Leng/3-1;
else
Atai=Math.floor(Leng/3);
i=3;
for(j=0; j<Atai; j++)
{
iValue=iValue.substring(0,Leng-i)+','+iValue.substring(Leng-i,Leng);
Leng++;


i++;
i+=3;
}
return iValue;
}


//-->
</SCRIPT>
<STYLE type="text/css">
<!--
INPUT{
text-align : left;
}
.TEXT_RIGHT{
text-align : right;
}
.style1 {font-size: 2}
-->
</STYLE>
</HEAD>
-----------------------------------------------------------

投稿日時 - 2008-10-21 11:09:04

QNo.4417850

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

不明な情報が多く、何がどのような関係なのかわからないので、推測で埋めるしかありませんが・・・

とりあえず、
var ikakaku1 = document.form1.elements[14].selectedIndex; * 300;
var ikakaku2 = document.form1.elements[15].selectedIndex; * 1000;
あたりで、エラーが出たりしませんか?

投稿日時 - 2008-10-21 12:06:02

補足

ご返答いただきまして、ありがとうございます。
エラー箇所がどこなのか、分かりません。。
ただ、プログラムを動かすと個々の冊数のみ選択結果が反映され、
合計冊数、送料、合計金額は変化なしです。

var ikakaku1 = document.form1.elements[14].selectedIndex; * 300;
var ikakaku2 = document.form1.elements[15].selectedIndex; * 1000;

上記2つは書き方が間違っているのでしょうか。
下記修正しましたが、変化なしでした。
var ikakaku1 = document.form1.elements[14].selectedIndex * 300;
var ikakaku2 = document.form1.elements[15].selectedIndex * 1000;

また、足りない情報についてどこら辺が必要でしょうか?
申し訳ありませんが、教えていただけると幸いです。

投稿日時 - 2008-10-22 17:13:08

あなたにオススメの質問