teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

JavaScriptの記述に非同期通信を追加

2020/09/30 10:00

投稿

ryuya1204
ryuya1204

スコア12

title CHANGED
File without changes
body CHANGED
@@ -31,7 +31,29 @@
31
31
  });
32
32
  }
33
33
  window.addEventListener("load", price);
34
+ ```
35
+ ### 変更したJavaScriptのコード
34
36
 
37
+ ```JavaScript
38
+
39
+ function price() {
40
+ const market_price = document.getElementById("item-price");
41
+ const add_tax = document.getElementById("add-tax-price");
42
+ const profit = document.getElementById("profit");
43
+ const XHR = new XMLHttpRequest();
44
+ XMLHttpRequest.open("POST", `/items/${current_user_id}`, true);
45
+ XHR.responseType = "json";
46
+ market_price.addEventListener("keyup", () => {
47
+ const selling_price = market_price.value;
48
+ let fee = selling_price * 0.1
49
+ let gains = selling_price * 0.9
50
+ add_tax.textContent = fee;
51
+ profit.textContent = gains;
52
+ });
53
+ }
54
+ window.addEventListener("load", price);
55
+
56
+
35
57
  ```### 該当のソースコード
36
58
 
37
59
  ```html.erb

1

html.erbファイルの追加

2020/09/30 10:00

投稿

ryuya1204
ryuya1204

スコア12

title CHANGED
File without changes
body CHANGED
@@ -32,6 +32,172 @@
32
32
  }
33
33
  window.addEventListener("load", price);
34
34
 
35
+ ```### 該当のソースコード
36
+
37
+ ```html.erb
38
+
39
+ <div class="items-sell-contents">
40
+ <header class="items-sell-header">
41
+ <%= link_to image_tag('furima-logo-color.png' , size: '185x50'), "/" %>
42
+
43
+ </header>
44
+ <div class="items-sell-main">
45
+ <h2 class="items-sell-title">商品の情報を入力</h2>
46
+ <%= form_with model: @items, local: true do |f| %>
47
+
48
+ <%= render 'shared/error_messages', model: f.object %>
49
+
50
+ <%# 出品画像 %>
51
+ <div class="img-upload">
52
+ <div class="weight-bold-text">
53
+ 出品画像
54
+ <span class="indispensable">必須</span>
55
+ </div>
56
+ <div class="click-upload">
57
+ <p>
58
+ クリックしてファイルをアップロード
59
+ </p>
60
+ <%= f.file_field :image, id:"item-image" %>
61
+ </div>
62
+ </div>
63
+ <%# /出品画像 %>
64
+ <%# 商品名と商品説明 %>
65
+ <div class="new-items">
66
+ <div class="weight-bold-text">
67
+ 商品名
68
+ <span class="indispensable">必須</span>
69
+ </div>
70
+ <%= f.text_area :name, class:"items-text", id:"item-name", placeholder:"商品名(必須 40文字まで)", maxlength:"40" %>
71
+ <div class="items-explain">
72
+ <div class="weight-bold-text">
73
+ 商品の説明
74
+ <span class="indispensable">必須</span>
75
+ </div>
76
+ <%= f.text_area :discription, class:"items-text", id:"item-info", placeholder:"商品の説明(必須 1,000文字まで)(色、素材、重さ、定価、注意点など)例)2010年頃に1万円で購入したジャケットです。ライトグレーで傷はありません。あわせやすいのでおすすめです。" ,rows:"7" ,maxlength:"1000" %>
77
+ </div>
78
+ </div>
79
+ <%# /商品名と商品説明 %>
80
+
81
+ <%# 商品の詳細 %>
82
+ <div class="items-detail">
83
+ <div class="weight-bold-text">商品の詳細</div>
84
+ <div class="form">
85
+ <div class="weight-bold-text">
86
+ カテゴリー
87
+ <span class="indispensable">必須</span>
88
+ </div>
89
+ <%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:"select-box", id:"item-category"}) %>
90
+ <div class="weight-bold-text">
91
+ 商品の状態
92
+ <span class="indispensable">必須</span>
93
+ </div>
94
+ <%= f.collection_select(:condition_id, Condition.all, :id, :name, {}, {class:"select-box", id:"item-sales-status"}) %>
95
+ </div>
96
+ </div>
97
+ <%# /商品の詳細 %>
98
+
99
+ <%# 配送について %>
100
+ <div class="items-detail">
101
+ <div class="weight-bold-text question-text">
102
+ <span>配送について</span>
103
+ <a class="question" href="#">?</a>
104
+ </div>
105
+ <div class="form">
106
+ <div class="weight-bold-text">
107
+ 配送料の負担
108
+ <span class="indispensable">必須</span>
109
+ </div>
110
+ <%= f.collection_select(:delivery_fee_id, DeliveryFee.all, :id, :name, {}, {class:"select-box", id:"item-shipping-fee-status"}) %>
111
+ <div class="weight-bold-text">
112
+ 発送元の地域
113
+ <span class="indispensable">必須</span>
114
+ </div>
115
+ <%= f.collection_select(:area_id, Area.all, :id, :name, {}, {class:"select-box", id:"item-prefecture"}) %>
116
+ <div class="weight-bold-text">
117
+ 発送までの日数
118
+ <span class="indispensable">必須</span>
119
+ </div>
120
+ <%= f.collection_select(:ship_days_id, ShipDay.all, :id, :name, {}, {class:"select-box", id:"item-scheduled-delivery"}) %>
121
+ </div>
122
+ </div>
123
+ <%# /配送について %>
124
+
125
+ <%# 販売価格 %>
126
+ <div class="sell-price">
127
+ <div class="weight-bold-text question-text">
128
+ <span>販売価格<br>(¥300〜9,999,999)</span>
129
+ <a class="question" href="#">?</a>
130
+ </div>
131
+ <div>
132
+ <div class="price-content">
133
+ <div class="price-text">
134
+ <span>価格</span>
135
+ <span class="indispensable">必須</span>
136
+ </div>
137
+ <span class="sell-yen">¥</span>
138
+ <%= f.text_field :price, class:"price-input", id:"item-price", placeholder:"例)300" %>
139
+ </div>
140
+ <div class="price-content">
141
+ <span>販売手数料 (10%)</span>
142
+ <span>
143
+ <span id='add-tax-price'></span>円
144
+ </span>
145
+ </div>
146
+ <div class="price-content">
147
+ <span>販売利益</span>
148
+ <span>
149
+ <span id='profit'></span>円
150
+ </div>
151
+ </span>
152
+ </div>
153
+ </div>
154
+ <%# /販売価格 %>
155
+
156
+ <%# 注意書き %>
157
+ <div class="caution">
158
+ <p class="sentence">
159
+ <a href="#">禁止されている出品、</a>
160
+ <a href="#">行為</a>
161
+ を必ずご確認ください。
162
+ </p>
163
+ <p class="sentence">
164
+ またブランド品でシリアルナンバー等がある場合はご記載ください。
165
+ <a href="#">偽ブランドの販売</a>
166
+ は犯罪であり処罰される可能性があります。
167
+ </p>
168
+ <p class="sentence">
169
+ また、出品をもちまして
170
+ <a href="#">加盟店規約</a>
171
+ に同意したことになります。
172
+ </p>
173
+ </div>
174
+ <%# /注意書き %>
175
+ <%# 下部ボタン %>
176
+ <div class="sell-btn-contents">
177
+ <%= f.submit "出品する" ,class:"sell-btn" %>
178
+ <%=link_to 'もどる', root_path, class:"back-btn" %>
179
+ </div>
180
+ <%# /下部ボタン %>
181
+ </div>
182
+ <% end %>
183
+
184
+ <footer class="items-sell-footer">
185
+ <ul class="menu">
186
+ <li><a href="#">プライバシーポリシー</a></li>
187
+ <li><a href="#">フリマ利用規約</a></li>
188
+ <li><a href="#">特定商取引に関する表記</a></li>
189
+ </ul>
190
+ <%= link_to image_tag('furima-logo-color.png' , size: '185x50'), "/" %>
191
+ <p class="inc">
192
+ ©︎Furima,Inc.
193
+ </p>
194
+ </footer>
195
+ </div>
196
+
197
+
198
+
199
+
200
+
35
201
  ```
36
202
 
37
203
  ### 試したこと