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

質問編集履歴

4

追記

2020/06/29 08:04

投稿

maskmelon
maskmelon

スコア63

title CHANGED
File without changes
body CHANGED
@@ -93,4 +93,6 @@
93
93
  ```
94
94
  上のようにスクリプトに渡したい変数をJSONに変換してみたのですがうまくいきません。
95
95
 
96
- ejs上の変数をスクリプトに渡す上でJSONに変換するということがなぜ有効なのか分かっていないため、無意味なことをしてしまっているように思います。
96
+ ejs上の変数をスクリプトに渡す上でJSONに変換するということがなぜ有効なのか分かっていないため、無意味なことをしてしまっているように思います。
97
+
98
+ スクリプト内で%タグを使うとExpression expected.が発生するのはどのやり方でも同じようです。

3

追記

2020/06/29 08:04

投稿

maskmelon
maskmelon

スコア63

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,3 @@
1
- タイトルの通りです。
2
-
3
-
4
-
5
1
  ```ejs
6
2
  <!DOCTYPE html>
7
3
  <html lang="ja">
@@ -53,4 +49,48 @@
53
49
 
54
50
  グラフ描画のライブラリはChart.jsを使用しています。
55
51
 
56
- 分かる方いらっしゃいましたらよろしくお願いします。
52
+ 分かる方いらっしゃいましたらよろしくお願いします。
53
+
54
+
55
+ ### 追記
56
+
57
+ ```ejs
58
+
59
+ <body>
60
+ <h1>Q: <%= question.content %></h1>
61
+ <p id="countA">A: <%= question.countA %></p>
62
+ <p id="countB">B: <%= question.countB %></p>
63
+ <a href="/">次の質問</a>
64
+ <canvas id="graph-area" width="400" height="400"></canvas>
65
+ <% const countA = JSON.stringify(question.countA) %>
66
+ <% const countB = JSON.stringify(question.countB) %>
67
+
68
+ <script>
69
+ // ▼グラフの中身
70
+ var pieData = [
71
+ {
72
+ value: parseInt(countA), // 値
73
+ color:"#F7464A", // 色
74
+ highlight: "#FF5A5E", // マウスが載った際の色
75
+ label: "A" // ラベル
76
+ },
77
+ {
78
+ value: parseInt(countB),
79
+ color: "#41C44E",
80
+ highlight: "#6CD173",
81
+ label: "B"
82
+ },
83
+ ];
84
+ // ▼上記のグラフを描画するための記述
85
+ window.onload = function(){
86
+ var ctx = document.getElementById("graph-area").getContext("2d");
87
+ window.myPie = new Chart(ctx).Pie(pieData);
88
+ };
89
+
90
+ </script>
91
+ </body>
92
+
93
+ ```
94
+ 上のようにスクリプトに渡したい変数をJSONに変換してみたのですがうまくいきません。
95
+
96
+ ejs上の変数をスクリプトに渡す上でJSONに変換するということがなぜ有効なのか分かっていないため、無意味なことをしてしまっているように思います。

2

言い回しの変更

2020/06/29 07:58

投稿

maskmelon
maskmelon

スコア63

title CHANGED
File without changes
body CHANGED
@@ -49,10 +49,8 @@
49
49
  </html>
50
50
  ```
51
51
 
52
- 上のejsファイルでは、サーバー側から変数questionを渡して表示させています。スクリプトタグの内部にも変数questionのデータを反映させたいです
52
+ 上のejsファイルでは、サーバー側から変数questionを渡してブラウザに表示させています。同様にスクリプトタグの内部にも変数questionのデータを渡したいですが、どのような方法が考えられるでしょうか?
53
53
 
54
- テンプレートエンジンを使ってサーバー側からクライアント側にデータを渡すのと同じように、クライアント側のjsファイル(スクリプトタグ内部)にデータを渡すにはどのような方法が考えられるでしょうか?
55
-
56
54
  グラフ描画のライブラリはChart.jsを使用しています。
57
55
 
58
56
  分かる方いらっしゃいましたらよろしくお願いします。

1

タグの追加

2020/06/28 01:46

投稿

maskmelon
maskmelon

スコア63

title CHANGED
File without changes
body CHANGED
File without changes