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

質問編集履歴

3

内容変更

2019/08/13 06:02

投稿

Homaresan
Homaresan

スコア15

title CHANGED
@@ -1,1 +1,1 @@
1
- 誰か助けください!経過時間をビューに表示させたいです!泣
1
+ ページをリロードしもリセットせず経過時間を表示させ続けたい
body CHANGED
@@ -1,60 +1,44 @@
1
- ### 前提・実現したいこと
1
+ ### 前提・実現したいこと
2
- 今現在Ruby on Rails5で禁煙の手助けとなるアプリケーションを作成しているプログラミング初心者です。
3
2
 
4
- devise作成した新規登録画面で登録完了するとトップページに移動しビューに登録からの経過時間を表示させたいです
3
+ Ruby on rails5経過時間をビューに表示させるためにjsファイルを用いて経過時間を表示させました。
5
4
 
6
- 経過時間を表示するjsファイルは作成できたのですが、登録ボタンを押たと同時にトップページ移動し経過時間表示する方法を色々調べてみたのです分かりませんで
5
+ かしページを更新(リロード)するとタイマーリセットされてまいます
7
6
 
7
+ 経過時間をリセットさせずに表示し続けたいです。
8
8
 
9
- 登録ボタンをクリックと同時にトップページに移動しビュー(トップページ)にjsファイルに記載の関数を呼び出すことができると解決できると思うのですが…
10
9
 
11
- 分からなかったので申し訳ないのでが、教えて頂けと幸いです
10
+ ### index.html.haml(経過時間を表示するビューです)
12
11
 
13
-
14
-
15
-
16
-
17
- ### app/views/users/regisrations/new.html.haml
18
-
19
12
  ```
20
- = form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
13
+ %input{type: 'button', value: 'スタート', onclick: 'startShowing();'}
21
-
22
- (省略)
23
-
24
- .actions
25
- = f.submit "禁煙開始" #ここが新規登録ボタンです。
26
- ```
27
-
28
- ### index.html.haml(経過時間を表示させたいビューです)
29
-
30
- ```
31
- %h2 あなたの禁煙時間
32
-    #ここで呼び出したいです。
33
14
  %form{action: '#', name: 'form1'}
34
15
  %input{type: 'text', name: 'field1', size: '4'}日
35
16
  %input{type: 'text', name: 'field2', size: '2'}時間
36
17
  %input{type: 'text', name: 'field3', size: '2'}分
37
18
  %input{type: 'text', name: 'field4', size: '2'}秒
19
+   
38
20
  ```
39
21
 
40
- ### app/assets/javascripts/timer.js
22
+ ### timer.js
41
23
 
42
24
  ```
43
25
  var start = new Date();
44
26
 
45
27
  // 初期化
28
+ var day = 0;
46
29
  var hour = 0;
47
30
  var min = 0;
48
31
  var sec = 0;
49
32
  var now = 0;
50
33
  var datet = 0;
51
34
 
52
- function disp(){
35
+ function startShowing(){
53
36
 
54
37
  now = new Date();
55
38
 
56
- datet = parseInt((now.getTime() - start.getTime()) / 1000);
39
+ datet = parseInt((now.getTime() - start.getTime()) / 1000);
57
40
 
41
+ day = parseInt(datet / 86400);
58
42
  hour = parseInt(datet / 3600);
59
43
  min = parseInt((datet / 60) % 60);
60
44
  sec = datet % 60;
@@ -64,12 +48,13 @@
64
48
  if(min < 10) { min = "0" + min; }
65
49
  if(sec < 10) { sec = "0" + sec; }
66
50
 
67
- // テキストフィールドにデータを渡す処理
51
+ // テキストフィールドにデータを渡す処理
52
+ document.form1.field1.value = day;
68
- document.form1.field1.value = hour;
53
+ document.form1.field2.value = hour;
69
- document.form1.field2.value = min;
54
+ document.form1.field3.value = min;
70
- document.form1.field3.value = sec;
55
+ document.form1.field4.value = sec;
71
56
 
72
- setTimeout("disp()", 1000);
57
+ setTimeout("startShowing()", 1000);
73
58
 
74
59
  }
75
60
  ```

2

誤字

2019/08/13 06:02

投稿

Homaresan
Homaresan

スコア15

title CHANGED
File without changes
body CHANGED
@@ -3,10 +3,10 @@
3
3
 
4
4
  deviseで作成した新規登録画面で登録を完了するとトップページに移動しビューに登録からの経過時間を表示させたいです。
5
5
 
6
- 経過時間を表示するjsファイルは作成できたのですが、登録ボタンを押したと同時にトップページ経過時間を表示する方法を色々調べてみたのですが分かりませんでした。
6
+ 経過時間を表示するjsファイルは作成できたのですが、登録ボタンを押したと同時にトップページ移動し経過時間を表示する方法を色々調べてみたのですが分かりませんでした。
7
7
 
8
8
 
9
- 登録ボタンをクリックと同時にトップページビューにjsファイルに記載の関数を呼び出すことができると解決できると思うのですが…
9
+ 登録ボタンをクリックと同時にトップページに移動しビュー(トップページ)にjsファイルに記載の関数を呼び出すことができると解決できると思うのですが…
10
10
 
11
11
  分からなかったので申し訳ないのですが、教えて頂けると幸いです泣
12
12
 

1

タイトル変更

2019/08/12 11:55

投稿

Homaresan
Homaresan

スコア15

title CHANGED
@@ -1,1 +1,1 @@
1
- 初心者です。経過時間をビューに表示させたいですが、jsファイルに記載の関数の呼び出し方が分からず困っています。
1
+ 誰か助けてください!経過時間をビューに表示させたいです!泣
body CHANGED
File without changes