色々、既出のログをみたのですがいまいちよくわからないことがあったので質問させてもらいます。当方htmlの知識はほどほどにありますがjsやフォームはあまりよくわかりません。またcgiではなくjsを使いたいと思っています。部分的には既出のものとかぶることもあるのですが、詳細をどのように設定していいかなどもわからなかったもので…宜しくお願いします。
■まず下記の計算をしたいと思っています。
(1)【個数】×【商品レンタル期間】+【送料】×=Web上に表示される金額
(2)【個数】×【商品レンタル期間】+【送料】×【消費税】=上記の下に金額
(1)と(2)は縦列もしくは並列に表記するつもりです。
例えば、500円(税込525円)みたいな感じで
・【個数】は、プルダウンで選択させるようにするつもりです。
・【商品レンタル期間】は
1泊2日、2泊3日、3泊4日の中からプルダウンで選択させるようにするつもりです。ここを
・【送料】は、固定です。
ただ、送料は3種類あって、小中大と分けたいです。
例えばこんな感じでできるとありがたいです。
表示部分には「送料」としか表示されずに、
soryo1と指定すれば100円
soryo2と指定すれば200円
soryo3と指定すれば300円
となるようにしたいです。
ただ、この送料の部分は固定ですのでプルダウン選択はなしです。
■javascriptはJQueryなどのライブラリはなしでできるだけしたいです。
またjavascript自体は、外部からのリンクにするつもりです。
■【商品レンタル期間】のところについて
基準となる金額が1泊2日200円の場合に
2泊3日は1泊2日の1.2倍
3泊4日は1泊2日の1.4倍
という風に、基準となる1泊2日の金額から自動計算したいです。
ながながと書いたあげく、説明が下手で申し訳ありませんが
どなたかわかりやすく教えていただけるとありがたいです。
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
どこまでできているのか不明ですが、勉強なさってください。
HTMLもscriptも提示されていないので、とりあえず、ごくプリミティブな参考例です。(単価100の設定で、計算結果を表示)
1)プルダウンに対応させたらどうなるか?
2)文字を入力するとエラー表示(NaN)になるけど、回避するには?
3)計算の途中で条件判断したり、分岐するには?
などなど、いろいろありますので調べてみてください。
(適当に検索しても、結構情報は見つかるはずです)
質問文で一番疑問なのは、入力して計算結果を表示した後、どうするつもりなのかですねぇ。(javascriptだけだと、後はどうしようもないけど…)
<html>
<script type="text/javascript">
function calc() {
var tanka = 100;
var kazu = atai('kazu');
var kikan = atai('kikan');
var soryo = atai('soryo');
var result = tanka*kazu*kikan + soryo;
document.getElementById('result').innerHTML = result + '円';
}
function atai(eId){
return parseInt(document.getElementById(eId).value);
}
</script>
<body>
<p>個 数:<input type="text" id="kazu">
<br>期 間:<input type="text" id="kikan">
<br>送 料:<input type="text" id="soryo">
<p><input type="button" value=" 計算 " onclick="calc()">
<p>
<div style="width:400px;border:1px solid gray;padding:8px;">
【個数】×【レンタル期間】+【送料】=<span id="result"></span>
</div>
</body>
</html>
この回答への補足
>入力して計算結果を表示した後、どうするつもりなのかですねぇ。
なるほど…
そりゃそうです。説明不足で申し訳ないです…
計算結果を出したものをつかってレンタル用のカートに
反映させるつもりです。
いまのところ、プルダウンで
【個数】と【レンタル期間】を別々に入力し、
レンタル用のカートのボタンをクリックすることでphpで反映させてます。
ただ、phpは自分でつくったものではなく、別の人がつくったものなので
どうやって反映させているのかはわからないです。
No.2
- 回答日時:
ちょっと長いですが…。
メモ帳にでも貼り付けて、HTMLファイルで保存して下さい。
あくまで自動計算のみです。
------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML lang="ja">
<HEAD>
<TITLE>質問番号4688991</TITLE>
<STYLE TYPE="text/css">
<!--
.noborder {border-width:0pt; border-style:none;}
-->
</STYLE>
<SCRIPT language="JavaScript" type="text/javascript">
<!--
// 送料選択
function SelectCarriage()
{
// 送料選択リストの値を取得する
var selectedIndex = document.getElementById('selection').value;
// 値に応じて送料変更を実行
if (selectedIndex == 1)
{
ChangeCarriage(100);
}
if (selectedIndex == 2)
{
ChangeCarriage(200);
}
if (selectedIndex == 3)
{
ChangeCarriage(300);
}
}
// 送料変更
function ChangeCarriage(amount)
{
// 金額表示エリアを取得する
var carriage = document.getElementsByName('carriage');
// 金額表示エリアの個数分ループ
for (i = 0; i < carriage.length; i++)
{
// 金額表示エリアの金額を変更する
carriage[i].value = amount;
// 料金計算
CalcAmount(i);
}
}
// 料金計算
function CalcAmount(index)
{
// 個数リストの値を取得する
var count = document.getElementsByName('count')[index].value;
// 商品レンタル期間リストの値を取得する
var term = document.getElementsByName('term')[index].value;
// 送料の値を取得する
var carriage = document.getElementsByName('carriage')[index].value;
// 金額表示エリアを取得する
var total = document.getElementsByName('total')[index];
// 税込表示エリアを取得する
var taxin = document.getElementsByName('taxin')[index];
// 個数かレンタル期間が選ばれていない場合
if (count == 0 || term == 0)
{
// 金額と税込を0に設定する
total.value = 0;
taxin.value = 0;
return;
}
// レンタル期間の倍率
var rate = 1;
// 2泊3日なら1.2倍とする
if (term == 2)
{
rate = 1.2;
}
// 3泊4日なら1.4倍とする
if (term == 3)
{
rate = 1.4;
}
// 金額を計算する
var amount = eval(500 * count * rate + "+" + carriage);
// 表示エリアに金額・税込をセットする
total.value = amount;
taxin.value = eval(amount * 1.05);
}
-->
</script>
</HEAD>
<BODY ONLOAD="SelectCarriage();">
<TABLE BORDER="1">
<TR>
<TD BGCOLOR="LIGHTPINK">送料選択</TD>
<TD>
<SELECT ID="selection"
onchange="SelectCarriage();">
<OPTION VALUE="1">送料1</OPTION>
<OPTION VALUE="2">送料2</OPTION>
<OPTION VALUE="3">送料3</OPTION>
</SELECT>
</TD>
</TR>
</TABLE>
<TABLE BORDER="1">
<TR>
<TD BGCOLOR="LIGHTBLUE">個数</TD>
<TD BGCOLOR="LIGHTBLUE">商品レンタル期間</TD>
<TD BGCOLOR="LIGHTGREY">送料</TD>
<TD BGCOLOR="LIGHTGREY">金額</TD>
<TD BGCOLOR="LIGHTGREY">税込</TD>
</TR>
<TR>
<TD>
<SELECT NAME="count"
onchange="CalcAmount(0);">
<OPTION VALUE="0"></OPTION>
<OPTION VALUE="1">1</OPTION>
<OPTION VALUE="2">2</OPTION>
<OPTION VALUE="3">3</OPTION>
<OPTION VALUE="4">4</OPTION>
<OPTION VALUE="5">5</OPTION>
</SELECT>
</TD>
<TD>
<SELECT NAME="term"
onchange="CalcAmount(0);">
<OPTION VALUE="0"></OPTION>
<OPTION VALUE="1">1泊2日</OPTION>
<OPTION VALUE="2">2泊3日</OPTION>
<OPTION VALUE="3">3泊4日</OPTION>
</SELECT>
</TD>
<TD>
\<INPUT TYPE="TEXT" ID="carriage" CLASS="noborder" VALUE="0" READONLY>
</TD>
<TD>
\<INPUT TYPE="TEXT" NAME="total" CLASS="noborder" VALUE="0" READONLY>
</TD>
<TD>
\<INPUT TYPE="TEXT" NAME="taxin" CLASS="noborder" VALUE="0" READONLY>
</TD>
</TR>
<TR>
<TD>
<SELECT NAME="count"
onchange="CalcAmount(1);">
<OPTION VALUE="0"></OPTION>
<OPTION VALUE="1">1</OPTION>
<OPTION VALUE="2">2</OPTION>
<OPTION VALUE="3">3</OPTION>
<OPTION VALUE="4">4</OPTION>
<OPTION VALUE="5">5</OPTION>
</SELECT>
</TD>
<TD>
<SELECT NAME="term"
onchange="CalcAmount(1);">
<OPTION VALUE="0"></OPTION>
<OPTION VALUE="1">1泊2日</OPTION>
<OPTION VALUE="2">2泊3日</OPTION>
<OPTION VALUE="3">3泊4日</OPTION>
</SELECT>
</TD>
<TD>
\<INPUT TYPE="TEXT" NAME="carriage" CLASS="noborder" VALUE="0" READONLY>
</TD>
<TD>
\<INPUT TYPE="TEXT" NAME="total" CLASS="noborder" VALUE="0" READONLY>
</TD>
<TD>
\<INPUT TYPE="TEXT" NAME="taxin" CLASS="noborder" VALUE="0" READONLY>
</TD>
</TR>
</TABLE>
<BR>
商品単価は500円です。<BR>
送料1を選択すると送料が100円になります。<BR>
送料2を選択すると送料が200円になります。<BR>
送料3を選択すると送料が300円になります。<BR>
個数or商品レンタル期間を選択時に金額計算を行います。<BR>
個数or商品レンタル期間が未入力の場合、金額は0円になります。<BR>
金額は商品単価×個数×レンタル期間倍率+送料です。<BR>
1泊2日のレンタル期間倍率は1.0です。<BR>
2泊3日のレンタル期間倍率は1.2です。<BR>
3泊4日のレンタル期間倍率は1.4です。<BR>
税込金額は金額×税率(1.05固定)です。<BR>
送料選択時には再計算を行います。<BR>
</BODY>
</HTML>
この回答への補足
大変、親切にソースを書いていただき恐縮です。
下記内容を補足させていただきます。
まず、せっかく教えていただいて申し訳ないのですが
<TABLE BORDER="1">
<TR>
<TD BGCOLOR="LIGHTPINK">送料選択</TD>
<TD>
<SELECT ID="selection"
onchange="SelectCarriage();">
<OPTION VALUE="1">送料1</OPTION>
<OPTION VALUE="2">送料2</OPTION>
<OPTION VALUE="3">送料3</OPTION>
</SELECT>
</TD>
</TR>
</TABLE>
の部分で、送料は選択ではなくソースを書く際に選択できるように
したいです。ユーザー側で選択するのではなく自動計算の式の中に組み込めないかなぁという意味です。
説明不足で申し訳ありません…
また、初歩的なことかもわからないのですがtableをつかわなくても大丈夫ですか?
下記回答にも補足したのですが、自動計算後、PHPで制作したカートへその自動計算後の料金を転送したいのです。
現在のものは、
【個数】と【レンタル期間】を別々にプルダウンで選択して、カートボタンを押すとphpへジャンプします。レンタル期間に料金は含まれるようになっています。
例えば
【2個】【1泊2日\100】と選択するとような感じです。
カートへは
1泊2日 2個 200円
-----------------------------
合計:200円
というような画面になります。
説明不足で申し訳ありませんが教えてください…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 高校 日商簿記3級の勉強中なのですが 精算表が完成せず困っています。 こちらの問題の回答を教えていただきた 2 2023/03/02 09:07
- 消費税 消費税の納税額の計算 1 2023/02/19 18:12
- その他(ネットショッピング・通販・ECサイト) 詐欺サイトでの返金について 6 2023/02/08 12:18
- 投資・株式の税金 一般口座で同一銘柄の総平均法のことで 1 2023/02/27 22:08
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- 格安スマホ・SIMフリースマホ 今 ahamoを使っていて 4898円以下になる携帯会社があれば乗り換えたいです 20GBと24時間 9 2022/09/27 07:43
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- その他(学校・勉強) 計算の仕方を教えてください。 ココナラで商品を販売することになったのですが、郵送する必要がでてきまし 1 2022/07/31 20:21
- 債券・証券 仕訳のこの問題が分かりません。教えていただけるとありがたいです 1 2022/06/15 20:34
- メルカリ メルカリでd払いした商品で、送料が別だった! 1 2022/10/27 02:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
javascriptでスロットゲームを...
-
onchangeイベントを使ってspan...
-
画像上のクリックした場所が分...
-
Enterで次の入力項目へ進むには?
-
div要素内の全input要素をdisable
-
【Tabキー】特定の範囲内だけで...
-
javascript 特定のタグのidの存...
-
同じIDで定義した要素の配列を...
-
JavaScriptで文字列の特定文字...
-
jspからjavascriptの変数引継ぎ
-
C#テキストボックスの文字を配...
-
javascriptとphpの連携で疑問
-
Latexに関する質問です。
-
window.openでタイトル名の指定
-
Boolean型配列中のTrueの有無を...
-
翌月を取得するGASが分かりません
-
Javascriptグローバル変数の値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
onchangeイベントを使ってspan...
-
HTML:Tableタグに対し、JavaScr...
-
任意の座標をクリックさせるには
-
モーダルダイアログウィンドウ...
-
innerHTML実行後のイベント
-
Click回数を数え、規定された回...
-
javascript 特定のタグのidの存...
-
[初心者]javascriptのfor文でな...
-
【Tabキー】特定の範囲内だけで...
-
javascriptでスロットゲームを...
-
JavaScriptとcookieを利用して...
-
日本語入力の禁止
-
javascriptで、表示されている...
-
javascriptで編集可能不可能の...
-
画像の一部を表示
-
DIV内のDIV要素を移動する。
-
javascript の 命令文の記述で...
-
重複しないくじの作り方がわか...
おすすめ情報