質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

252閲覧

入力フォームの値を使った計算結果を表で表示させる方法

vpp.ysk

総合スコア10

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/05/27 04:13

編集2019/05/27 04:38

イメージ説明

入力フォームに、りんご、みかんそれぞれの個数を入力すると、合計金額が表示されるようにしたいです。

りんご、みかんの単価は設定しているという前提で、それぞれ10~100個ずつ買った時の金額を表として表示するものです。

計算としては、(りんご個数りんご単価+みかん個数みかん単価)*n(n=10,20,30,・・・,100)と単純なのですが、
値の計算を複数回行うということで行き詰まっています。

ワードプレスに表示させることを目標にしており、現状、HTMLのみですが、HTML、javascriptどちらも初心者のため、ここからどうすればいいのかわかりません。

自分で調べて試してみましたが、うまくいかないため、アドバイスお願いします。

<form> <p>りんご <input type="tel" name="pips" style="width:100px;"></p> <p>みかん <input type="tel" name="market" style="width:100px;"></p> <table> <tbody> <tr> <td></td> <td>10</td> <td>20</td> <td>30</td> <td>40</td> <td>50</td> <td>60</td> <td>70</td> <td>80</td> <td>90</td> <td>100</td> </tr> <tr> <td>合計金額/td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </tbody> </table> <form>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんな感じで

javascript

1<script> 2window.addEventListener('DOMContentLoaded', function(e){ 3 var tanka={ 4 ringo:parseInt(document.querySelector('[name=ringo]').dataset["tanka"]), 5 mikan:parseInt(document.querySelector('[name=mikan]').dataset["tanka"]), 6 }; 7 var num=[].map.call(document.querySelectorAll('#t1 thead th'),function(x){ 8 return parseInt(x.textContent)||""; 9 }); 10 [].forEach.call(document.querySelectorAll('[data-tanka]'),function(x){ 11 x.addEventListener("input",function(){ 12 [].forEach.call(document.querySelectorAll('#t1 tbody td'),function(x,y){ 13 if(num[y]=="") return; 14 var v=0 15 +tanka["ringo"]*parseInt(document.querySelector('[name=ringo]').value) 16 +tanka["mikan"]*parseInt(document.querySelector('[name=mikan]').value); 17 x.textContent=num[y]*v; 18 }); 19 }); 20 21 }); 22}); 23</script> 24りんご(単価100)<input type="text" name="ringo" class="fruit" data-tanka="100" value="0" pattern="\d+"><br> 25みかん(単価80)<input type="text" name="mikan" class="fruit" data-tanka="80" value="0" pattern="\d+"><br> 26<table id="t1" border> 27<thead> 28<tr> 29<th>&nbsp;</th> 30<th>10</th> 31<th>20</th> 32<th>30</th> 33<th>40</th> 34<th>50</th> 35<th>60</th> 36<th>70</th> 37<th>80</th> 38<th>90</th> 39<th>100</th> 40</tr> 41</thead> 42<tbody> 43<tr> 44<td>合計金額</td> 45<td>0</td> 46<td>0</td> 47<td>0</td> 48<td>0</td> 49<td>0</td> 50<td>0</td> 51<td>0</td> 52<td>0</td> 53<td>0</td> 54<td>0</td> 55</tr> 56</tbody> 57</table>

投稿2019/05/27 04:40

編集2019/05/27 04:44
yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vpp.ysk

2019/05/27 05:32

ありがとうございます。 期待通りの結果となりました! 差し支えなければ、以下2点についてもアドバイスいただけないでしょうか? ・桁が増えた際の表のレイアウトを保つ ・数値の桁をカンマで区切る
yambejp

2019/05/27 05:34

「桁が増えた際の表のレイアウトを保つ」は具体的に何をしたいかわかりません
yambejp

2019/05/27 05:37

「数値の桁をカンマで区切る 」については ・数値の桁をカンマで区切る 「x.textContent=num[y]*v;」の箇所を以下に x.textContent=(num[y]*v).toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
vpp.ysk

2019/05/27 06:30

「桁が増えた際の表のレイアウトを保つ」については、表示される数値が大きくなると、表もそれに合わせて大きくなるため、表の大きさを固定して、文字サイズを調整したい、という意図でした。 こちらに関しては、調べて解決できました。 ご回答ありがとうございました。
guest

0

値の計算を複数回行うということで行き詰まっています

わかりやすいのは配列を使う形ではないでしょうか。

js

1var price = 1000; // りんご個数*りんご単価+みかん個数*みかん単価 2var total = new Array(10); 3var n = [10,20,30,40,50,60,70,80,90,100]; 4var total = new Array(n.length); 5for ( var i=0; i<10; i++) total[i] = price * n[i]; 6 7// total は [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]

投稿2019/05/27 04:24

Lhankor_Mhy

総合スコア36115

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vpp.ysk

2019/05/27 04:38 編集

ご回答ありがとうございます。 計算部分については、ご回答いただいた形で実現できたのですが、 フォームからの値の受け取りや、計算結果を表示させる部分についても、アドバイスいただけると助かります。 現状のhtmlを追記致しましたので、ここにどのようにjavascriptを組み込めばいいか教えていただければと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問