質問編集履歴

7

2020/12/11 10:28

投稿

torafugu
torafugu

スコア1

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  回答日 | お客様名 | メールアドレス | 〜(その他質問項目)〜 | お客様ID | ←メアドをキーに追記
20
20
 
21
- yyyy/mm/dd | 山田  |〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
21
+ yyyy/mm/dd | 山田  |〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
22
22
 
23
23
 
24
24
 

6

2020/12/11 10:28

投稿

torafugu
torafugu

スコア1

test CHANGED
File without changes
test CHANGED
File without changes

5

2020/12/11 10:28

投稿

torafugu
torafugu

スコア1

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  回答日 | お客様名 | メールアドレス | 〜(その他質問項目)〜 | お客様ID | ←メアドをキーに追記
20
20
 
21
- yyyy/mm/dd | 山田  | 〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
21
+ yyyy/mm/dd | 山田  |〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
22
22
 
23
23
 
24
24
 

4

2020/12/11 10:27

投稿

torafugu
torafugu

スコア1

test CHANGED
File without changes
test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  var itemResponses = e.response.getItemResponses();
60
60
 
61
- var mail=itemResponses[1].getResponse();
61
+ var mail=itemResponses[0].getResponse();
62
62
 
63
63
 
64
64
 

3

2020/12/11 08:37

投稿

torafugu
torafugu

スコア1

test CHANGED
File without changes
test CHANGED
@@ -108,18 +108,8 @@
108
108
 
109
109
  ### 試したこと
110
110
 
111
-
112
-
113
- 質問項目が4つあるとし、メアドを聞くのは一つ目の質問であるとします。
114
-
115
- 仮の5つ目の回答(メアドに紐づくお客様ID)をフォームのGASで作って書き加えれば、
116
-
117
- スプレッドシートの同一行最後列に回答が入るのでは、と考えました。
118
-
119
111
  console.log(e.response.getItemResponses())でフォームの回答の配列を確認したところ、
120
112
 
121
113
  [ {}, {}, {}, {} ]と出力されました。{}の数は回答された質問項目の数と同じです。
122
114
 
123
115
  フォームの4つの質問のうち2つだけ答えた場合でも、{}は4つになりました。
124
-
125
-

2

2020/12/11 08:30

投稿

torafugu
torafugu

スコア1

test CHANGED
File without changes
test CHANGED
@@ -17,8 +17,6 @@
17
17
  例)
18
18
 
19
19
  回答日 | お客様名 | メールアドレス | 〜(その他質問項目)〜 | お客様ID | ←メアドをキーに追記
20
-
21
- ===============================================================
22
20
 
23
21
  yyyy/mm/dd | 山田  | 〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
24
22
 

1

2020/12/11 08:27

投稿

torafugu
torafugu

スコア1

test CHANGED
File without changes
test CHANGED
@@ -6,25 +6,47 @@
6
6
 
7
7
  質問項目の一つにお客様のメールアドレスを記入する項目があります。
8
8
 
9
+
10
+
9
- そのメールアドレスをキーに、あらかじめDBに保存していた、対応するお客様IDを取得して、お客様の回答の集計用シートに追記したいのです
11
+ そのメールアドレスをキーに、あらかじめDBに保存していた、対応するお客様IDを取得して、
12
+
13
+ お客様の回答が集計されるスプレッドシートに追記したいのです。
10
14
 
11
15
 
12
16
 
17
+ 例)
18
+
19
+ 回答日 | お客様名 | メールアドレス | 〜(その他質問項目)〜 | お客様ID | ←メアドをキーに追記
20
+
21
+ ===============================================================
22
+
23
+ yyyy/mm/dd | 山田  | 〜@gmail.com | 〜(その他回答内容)〜 | xxxxx |
13
24
 
14
25
 
15
26
 
27
+ (スプレッドシート側のGASからは、onEdit(e)等を使ってアクティブセルをメアド列の新しく入力されたセルに合わせて
28
+
29
+ 値を取得する方法でできそうなのですが、フォームのほぼ同時提出等があった時のアクティブセルの動きが心配でしたので、
30
+
31
+ フォーム側のGASでなんとかできないかなと考えました。)
16
32
 
17
33
 
18
34
 
19
35
  ### 発生している問題・エラーメッセージ
20
36
 
37
+ 質問項目が4つあるとし、メアドを聞くのは1つ目の質問項目であるとします。
38
+
39
+ 実際には存在しない、仮の5つ目の回答(メアドに紐づくお客様ID)をフォームのGASで作って、
40
+
41
+ 回答データに付け加えれば、回答が記録されるスプレッドシートの同一行最後列に回答が入るのでは、と考えました。
42
+
43
+ そこで以下の様なコードを書いているのですが、e.responseに対してどのようなメソッドを使えば、
44
+
45
+ 回答の配列にお客様IDの要素を一つ、付け加えられるのかわからないでいます、、
21
46
 
22
47
 
23
- ```
24
48
 
25
- エラーメッセージ
49
+ このやり方をご教示いただきたいです。
26
-
27
- ```
28
50
 
29
51
 
30
52
 
@@ -32,9 +54,55 @@
32
54
 
33
55
 
34
56
 
35
- ```ここに言語名を入力
57
+ ```google App Script
36
58
 
59
+ function get_ID(e){ //フォーム送信時にget_ID(e)が起動する様トリガー設定
60
+
61
+ var itemResponses = e.response.getItemResponses();
62
+
63
+ var mail=itemResponses[1].getResponse();
64
+
65
+
66
+
67
+ //以下、メアドとお客様IDが格納されているDBに接続します。
68
+
69
+ //ここからDB接続手続き
70
+
71
+ var MySQL= 'ホスト名';
72
+
73
+ var user_id = 'ユーザーID'
74
+
75
+ var user_pass = 'パスワード';
76
+
77
+ var conn = Jdbc.getConnection(MySQL, user_id, user_pass);
78
+
79
+ var stmt = conn.createStatement();
80
+
81
+ //DB接続 完了
82
+
83
+
84
+
85
+ var query = 'select id from Table where mail_address ="' + mail + '";'
86
+
87
+ var res = stmt.executeQuery(query);
88
+
89
+ while (res.next()) {
90
+
91
+ var id = res.getString('id');
92
+
93
+ }
94
+
95
+
96
+
37
- ソースコード
97
+ res.close();
98
+
99
+ stmt.close();
100
+
101
+
102
+
103
+ console.log(e.response.getItemResponses()) // [ {}, {}, {}, {} ]と出力されました。{}の数は質問項目の数と同じです。
104
+
105
+ }
38
106
 
39
107
  ```
40
108
 
@@ -44,12 +112,16 @@
44
112
 
45
113
 
46
114
 
47
- ここに題に対て試したこを記載てください
115
+ 項目が4つあると、メアドを聞くのは一つ目の質問であるとします
48
116
 
117
+ 仮の5つ目の回答(メアドに紐づくお客様ID)をフォームのGASで作って書き加えれば、
49
118
 
119
+ スプレッドシートの同一行最後列に回答が入るのでは、と考えました。
50
120
 
51
- ### 補足情報(FW/ツバージョンなど)
121
+ console.log(e.response.getItemResponses())でフォ回答の配列を確認したところ、
52
122
 
123
+ [ {}, {}, {}, {} ]と出力されました。{}の数は回答された質問項目の数と同じです。
53
124
 
125
+ フォームの4つの質問のうち2つだけ答えた場合でも、{}は4つになりました。
54
126
 
55
- ここにより詳細な情報を記載してください
127
+