質問編集履歴

2

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

2020/09/30 10:00

投稿

ryuya1204
ryuya1204

スコア12

test CHANGED
File without changes
test CHANGED
@@ -64,6 +64,50 @@
64
64
 
65
65
  window.addEventListener("load", price);
66
66
 
67
+ ```
68
+
69
+ ### 変更したJavaScriptのコード
70
+
71
+
72
+
73
+ ```JavaScript
74
+
75
+
76
+
77
+ function price() {
78
+
79
+ const market_price = document.getElementById("item-price");
80
+
81
+ const add_tax = document.getElementById("add-tax-price");
82
+
83
+ const profit = document.getElementById("profit");
84
+
85
+ const XHR = new XMLHttpRequest();
86
+
87
+ XMLHttpRequest.open("POST", `/items/${current_user_id}`, true);
88
+
89
+ XHR.responseType = "json";
90
+
91
+ market_price.addEventListener("keyup", () => {
92
+
93
+ const selling_price = market_price.value;
94
+
95
+ let fee = selling_price * 0.1
96
+
97
+ let gains = selling_price * 0.9
98
+
99
+ add_tax.textContent = fee;
100
+
101
+ profit.textContent = gains;
102
+
103
+ });
104
+
105
+ }
106
+
107
+ window.addEventListener("load", price);
108
+
109
+
110
+
67
111
 
68
112
 
69
113
  ```### 該当のソースコード

1

html.erbファイルの追加

2020/09/30 10:00

投稿

ryuya1204
ryuya1204

スコア12

test CHANGED
File without changes
test CHANGED
@@ -66,6 +66,338 @@
66
66
 
67
67
 
68
68
 
69
+ ```### 該当のソースコード
70
+
71
+
72
+
73
+ ```html.erb
74
+
75
+
76
+
77
+ <div class="items-sell-contents">
78
+
79
+ <header class="items-sell-header">
80
+
81
+ <%= link_to image_tag('furima-logo-color.png' , size: '185x50'), "/" %>
82
+
83
+
84
+
85
+ </header>
86
+
87
+ <div class="items-sell-main">
88
+
89
+ <h2 class="items-sell-title">商品の情報を入力</h2>
90
+
91
+ <%= form_with model: @items, local: true do |f| %>
92
+
93
+
94
+
95
+ <%= render 'shared/error_messages', model: f.object %>
96
+
97
+
98
+
99
+ <%# 出品画像 %>
100
+
101
+ <div class="img-upload">
102
+
103
+ <div class="weight-bold-text">
104
+
105
+ 出品画像
106
+
107
+ <span class="indispensable">必須</span>
108
+
109
+ </div>
110
+
111
+ <div class="click-upload">
112
+
113
+ <p>
114
+
115
+ クリックしてファイルをアップロード
116
+
117
+ </p>
118
+
119
+ <%= f.file_field :image, id:"item-image" %>
120
+
121
+ </div>
122
+
123
+ </div>
124
+
125
+ <%# /出品画像 %>
126
+
127
+ <%# 商品名と商品説明 %>
128
+
129
+ <div class="new-items">
130
+
131
+ <div class="weight-bold-text">
132
+
133
+ 商品名
134
+
135
+ <span class="indispensable">必須</span>
136
+
137
+ </div>
138
+
139
+ <%= f.text_area :name, class:"items-text", id:"item-name", placeholder:"商品名(必須 40文字まで)", maxlength:"40" %>
140
+
141
+ <div class="items-explain">
142
+
143
+ <div class="weight-bold-text">
144
+
145
+ 商品の説明
146
+
147
+ <span class="indispensable">必須</span>
148
+
149
+ </div>
150
+
151
+ <%= f.text_area :discription, class:"items-text", id:"item-info", placeholder:"商品の説明(必須 1,000文字まで)(色、素材、重さ、定価、注意点など)例)2010年頃に1万円で購入したジャケットです。ライトグレーで傷はありません。あわせやすいのでおすすめです。" ,rows:"7" ,maxlength:"1000" %>
152
+
153
+ </div>
154
+
155
+ </div>
156
+
157
+ <%# /商品名と商品説明 %>
158
+
159
+
160
+
161
+ <%# 商品の詳細 %>
162
+
163
+ <div class="items-detail">
164
+
165
+ <div class="weight-bold-text">商品の詳細</div>
166
+
167
+ <div class="form">
168
+
169
+ <div class="weight-bold-text">
170
+
171
+ カテゴリー
172
+
173
+ <span class="indispensable">必須</span>
174
+
175
+ </div>
176
+
177
+ <%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:"select-box", id:"item-category"}) %>
178
+
179
+ <div class="weight-bold-text">
180
+
181
+ 商品の状態
182
+
183
+ <span class="indispensable">必須</span>
184
+
185
+ </div>
186
+
187
+ <%= f.collection_select(:condition_id, Condition.all, :id, :name, {}, {class:"select-box", id:"item-sales-status"}) %>
188
+
189
+ </div>
190
+
191
+ </div>
192
+
193
+ <%# /商品の詳細 %>
194
+
195
+
196
+
197
+ <%# 配送について %>
198
+
199
+ <div class="items-detail">
200
+
201
+ <div class="weight-bold-text question-text">
202
+
203
+ <span>配送について</span>
204
+
205
+ <a class="question" href="#">?</a>
206
+
207
+ </div>
208
+
209
+ <div class="form">
210
+
211
+ <div class="weight-bold-text">
212
+
213
+ 配送料の負担
214
+
215
+ <span class="indispensable">必須</span>
216
+
217
+ </div>
218
+
219
+ <%= f.collection_select(:delivery_fee_id, DeliveryFee.all, :id, :name, {}, {class:"select-box", id:"item-shipping-fee-status"}) %>
220
+
221
+ <div class="weight-bold-text">
222
+
223
+ 発送元の地域
224
+
225
+ <span class="indispensable">必須</span>
226
+
227
+ </div>
228
+
229
+ <%= f.collection_select(:area_id, Area.all, :id, :name, {}, {class:"select-box", id:"item-prefecture"}) %>
230
+
231
+ <div class="weight-bold-text">
232
+
233
+ 発送までの日数
234
+
235
+ <span class="indispensable">必須</span>
236
+
237
+ </div>
238
+
239
+ <%= f.collection_select(:ship_days_id, ShipDay.all, :id, :name, {}, {class:"select-box", id:"item-scheduled-delivery"}) %>
240
+
241
+ </div>
242
+
243
+ </div>
244
+
245
+ <%# /配送について %>
246
+
247
+
248
+
249
+ <%# 販売価格 %>
250
+
251
+ <div class="sell-price">
252
+
253
+ <div class="weight-bold-text question-text">
254
+
255
+ <span>販売価格<br>(¥300〜9,999,999)</span>
256
+
257
+ <a class="question" href="#">?</a>
258
+
259
+ </div>
260
+
261
+ <div>
262
+
263
+ <div class="price-content">
264
+
265
+ <div class="price-text">
266
+
267
+ <span>価格</span>
268
+
269
+ <span class="indispensable">必須</span>
270
+
271
+ </div>
272
+
273
+ <span class="sell-yen">¥</span>
274
+
275
+ <%= f.text_field :price, class:"price-input", id:"item-price", placeholder:"例)300" %>
276
+
277
+ </div>
278
+
279
+ <div class="price-content">
280
+
281
+ <span>販売手数料 (10%)</span>
282
+
283
+ <span>
284
+
285
+ <span id='add-tax-price'></span>円
286
+
287
+ </span>
288
+
289
+ </div>
290
+
291
+ <div class="price-content">
292
+
293
+ <span>販売利益</span>
294
+
295
+ <span>
296
+
297
+ <span id='profit'></span>円
298
+
299
+ </div>
300
+
301
+ </span>
302
+
303
+ </div>
304
+
305
+ </div>
306
+
307
+ <%# /販売価格 %>
308
+
309
+
310
+
311
+ <%# 注意書き %>
312
+
313
+ <div class="caution">
314
+
315
+ <p class="sentence">
316
+
317
+ <a href="#">禁止されている出品、</a>
318
+
319
+ <a href="#">行為</a>
320
+
321
+ を必ずご確認ください。
322
+
323
+ </p>
324
+
325
+ <p class="sentence">
326
+
327
+ またブランド品でシリアルナンバー等がある場合はご記載ください。
328
+
329
+ <a href="#">偽ブランドの販売</a>
330
+
331
+ は犯罪であり処罰される可能性があります。
332
+
333
+ </p>
334
+
335
+ <p class="sentence">
336
+
337
+ また、出品をもちまして
338
+
339
+ <a href="#">加盟店規約</a>
340
+
341
+ に同意したことになります。
342
+
343
+ </p>
344
+
345
+ </div>
346
+
347
+ <%# /注意書き %>
348
+
349
+ <%# 下部ボタン %>
350
+
351
+ <div class="sell-btn-contents">
352
+
353
+ <%= f.submit "出品する" ,class:"sell-btn" %>
354
+
355
+ <%=link_to 'もどる', root_path, class:"back-btn" %>
356
+
357
+ </div>
358
+
359
+ <%# /下部ボタン %>
360
+
361
+ </div>
362
+
363
+ <% end %>
364
+
365
+
366
+
367
+ <footer class="items-sell-footer">
368
+
369
+ <ul class="menu">
370
+
371
+ <li><a href="#">プライバシーポリシー</a></li>
372
+
373
+ <li><a href="#">フリマ利用規約</a></li>
374
+
375
+ <li><a href="#">特定商取引に関する表記</a></li>
376
+
377
+ </ul>
378
+
379
+ <%= link_to image_tag('furima-logo-color.png' , size: '185x50'), "/" %>
380
+
381
+ <p class="inc">
382
+
383
+ ©︎Furima,Inc.
384
+
385
+ </p>
386
+
387
+ </footer>
388
+
389
+ </div>
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
69
401
  ```
70
402
 
71
403