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

質問編集履歴

3

tuiki

2020/02/18 01:34

投稿

sansam
sansam

スコア18

title CHANGED
File without changes
body CHANGED
@@ -101,7 +101,7 @@
101
101
  <body>
102
102
  <h1>本社振込</h1>
103
103
  こんにちは! <?!=address?> さん
104
- <form method="post" action="https://script.google.com/a/mediceo-gp.com/macros/s/AKfycbxldx3IwO6qlEhZtHNtcbFgGANP5d2ST7OLH2wHf-wWzd9pHgU/exec">
104
+ <form method="post" action="https://script.google.com/a/XXXXX/exec">
105
105
  ID:<input type="text" name="id" id="id"><br>
106
106
  氏名:<input type="text" name="name" id="name"><br>
107
107
  性別:
@@ -193,7 +193,7 @@
193
193
 
194
194
  //gassheetより該当するデータを探索する
195
195
  // var Properties = PropertiesService.getScriptProperties();
196
- // var sheettaro = Properties.getProperty('1DrFKikHrAie4IWZaqFcMibG831MC_RSGt2kPHt4hCLg');
196
+ // var sheettaro = Properties.getProperty('XXXXXXX');
197
197
  //スプレッドシート名指定
198
198
   var id ='XXXXXXXXXXX';
199
199
  var sheet2 = SpreadsheetApp.openById(id).getSheetByName('回答一覧');

2

修正した

2020/02/18 01:34

投稿

sansam
sansam

スコア18

title CHANGED
File without changes
body CHANGED
@@ -83,4 +83,194 @@
83
83
  var resultpage=HtmlService.createTemplateFromFile("result");
84
84
  return resultpage.evaluate();
85
85
 
86
+ ```追記します。
87
+
88
+ 頂いたサンプルコードで、試しに実装してみましたが、
89
+ 私の技術力不足で、できず、丸投げするつももりはないのですが、以下のコードで
90
+ 修正すべき点をご教示いただければ幸いです。
91
+
92
+ ```HTML
93
+ <!DOCTYPE html>
94
+ <html>
95
+
96
+ <head>
97
+ <base target="_top">
98
+ <?var address = Session.getActiveUser().getUserLoginId();?>
99
+ </head>
100
+
101
+ <body>
102
+ <h1>本社振込</h1>
103
+ こんにちは! <?!=address?> さん
104
+ <form method="post" action="https://script.google.com/a/mediceo-gp.com/macros/s/AKfycbxldx3IwO6qlEhZtHNtcbFgGANP5d2ST7OLH2wHf-wWzd9pHgU/exec">
105
+ ID:<input type="text" name="id" id="id"><br>
106
+ 氏名:<input type="text" name="name" id="name"><br>
107
+ 性別:
108
+ <input type="radio" name="gender" value="男性" id="gender1">男性
109
+ <input type="radio" name="gender" value="女性" id="gender2">女性<br>
110
+ 好きな動物:
111
+ <input type="checkbox" name="animal" value="犬" id="animal1">いぬ
112
+ <input type="checkbox" name="animal" value="猫" id="animal2">ねこ
113
+ <input type="checkbox" name="animal" value="うさぎ" id="animal3">うさぎ<br>
114
+ <input type="submit" value="送信する" onclick="createPDF()">
115
+ <input type="submit" value="修正する" onclick="sheetman(textvalue)">
116
+ </form>
117
+ </body>
118
+
119
+ <script>
120
+ function createPDF(){
121
+ google.script.run.withSuccessHandler().GetInfo();
122
+ }
123
+
124
+ ///////////////////////////////////////////////////////////////////////////////////////////
125
+ function senddata(){
126
+ var textvalue = document.getElementById("id").value;
127
+
128
+ //入力内容が空の場合、アラートを出す
129
+ if(textvalue == ""){
130
+ alert("申請時発行のNo.が入力されていませんよ。");
131
+ return 0;
132
+ }
133
+
134
+ //editnumに要求IDを格納する
135
+ editnum = textvalue;
136
+
137
+ google.script.run.withSuccessHandler(onSuccess).sheetman(textvalue);
138
+
139
+ }
140
+
141
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////
142
+ //配列を受け取って表示する関数
143
+ function onSuccess(data) {
144
+ //帰ってきたデータを取得する
145
+ var test = JSON.parse(data);
146
+ var chktest = Number(test[0]);
147
+
148
+ Logger.log(chktest);
149
+
150
+ if(chktest == 0){
151
+ alert("作成者が違う、IDが異なる、データが存在してないなどの理由でデータが見つかりませんでした。");
152
+ return 0;
153
+ }
154
+
155
+ //datalengthを取得しループでwasabiフィールドに値を格納する(editflagを1にする)
156
+ editflag = 1;
157
+ var testlength = 63;
158
+ var cnt = 1;
159
+
160
+ for(var i = 0;i<testlength;i++){
161
+ if(i == 0){
162
+ continue;
163
+ }
164
+
165
+ if(i == 1){
166
+ continue;
167
+ }
168
+
169
+ //データを反映する
170
+ document.getElementById(name).value = syoudata;
171
+
172
+ //カウンタを回す
173
+ cnt = cnt + 1;
174
+ }
175
+ }
176
+
177
+ </script>
178
+
179
+ </html>
180
+ ```
181
+ ```Javascript
182
+
183
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
184
+ //配列を渡す為のイベントハンドラから呼び出す関数
185
+ function sheetman(textvalue){
186
+ //現在のユーザ名と指定されたIDを取得しておく
187
+ var nowuser = String(Session.getActiveUser());
188
+ var filterid = String(textvalue);
189
+
190
+ //配列と存在フラグを用意する
191
+ var data = [];
192
+ var catflag = 0;
193
+
194
+ //gassheetより該当するデータを探索する
195
+ // var Properties = PropertiesService.getScriptProperties();
196
+ // var sheettaro = Properties.getProperty('1DrFKikHrAie4IWZaqFcMibG831MC_RSGt2kPHt4hCLg');
197
+ //スプレッドシート名指定
198
+  var id ='XXXXXXXXXXX';
199
+ var sheet2 = SpreadsheetApp.openById(id).getSheetByName('回答一覧');
200
+ var sheet=sheet2.getRange(2,1,5,6).getValue();
201
+ var sheetlength = sheet.length;
202
+
203
+
204
+ for(var i =0;i<sheetlength;i++){
205
+ //カレントデータのIDを取得し比較する
206
+
207
+ var curid = String(sheet[i][0]);
208
+
209
+ if(curid == ""){
210
+ break;
211
+ }
212
+
213
+ if(curid != filterid){
214
+ continue;
215
+ }else{
216
+
217
+ }
218
+
219
+ if(nowuser == manager){
220
+ //管理者の場合、メアドの照合は行わない
221
+ }else{
222
+ var mailman = String(sheet[i][63]);
223
+ if(mailman != nowuser){
224
+ continue;
225
+ }
226
+ }
227
+
228
+ //IDとメールアドレスが一致した場合には、存在フラグを立てて、データを配列に格納する
229
+ catflag = 1;
230
+ var curdatalength = sheet[i].length;
231
+
232
+ for(var j = 0;j<curdatalength;j++){
233
+ data.push(sheet[i][j]);
234
+ }
235
+ break;
236
+ }
237
+
238
+ //catflagが0の場合に配列の頭に0だけ格納する
239
+ if(catflag == 0){
240
+ data.push(0);
241
+ }
242
+
243
+ return JSON.stringify(data);
244
+
245
+ }
246
+ ```
247
+
248
+ ```Javaccript
249
+ function doGet() {
250
+
251
+ var toppage=HtmlService.createTemplateFromFile("index");
252
+ return toppage.evaluate();
253
+ }
254
+
255
+ function doPost(postdata){
256
+
257
+ var sh=SpreadsheetApp.openById('XXXXXXXXXXX');
258
+ var sheetForm=sh.getSheetByName('回答一覧');
259
+ var time=new Date();
260
+
261
+ var id=postdata.parameters.id.toString();
262
+ var name=postdata.parameters.name.toString();
263
+ var gender=postdata.parameters.gender.toString();
264
+ var animal=postdata.parameters.animal.toString();
265
+
266
+ //セッション情報からユーザID(メールアドレス)を取得
267
+ var objUser = Session.getActiveUser();
268
+ var mail = objUser.getEmail();
269
+
270
+ sheetForm.appendRow([time,id,name,gender,animal,mail]);
271
+
272
+ var resultpage=HtmlService.createTemplateFromFile("result");
273
+ return resultpage.evaluate();
274
+
275
+ }
86
276
  ```

1

修正

2020/02/18 01:33

投稿

sansam
sansam

スコア18

title CHANGED
File without changes
body CHANGED
@@ -19,4 +19,68 @@
19
19
 
20
20
  No 名前 年齢
21
21
  1 Aさん 20歳 
22
- 修正ボタン
22
+ 修正ボタン
23
+
24
+ ```HTML
25
+ <!DOCTYPE html>
26
+ <html>
27
+
28
+ <head>
29
+ <base target="_top">
30
+ <?var address = Session.getActiveUser().getUserLoginId();?>
31
+ </head>
32
+
33
+ <body>
34
+ <h1>振込</h1>
35
+ こんにちは! <?!=address?> さん
36
+ <form method="post" action="https://script.google.com/a/XXXXXXXXX/exec">
37
+ 氏名:<input type="text" name="name"><br>
38
+ 性別:
39
+ <input type="radio" name="gender" value="男性">男性
40
+ <input type="radio" name="gender" value="女性">女性<br>
41
+ 好きな動物:
42
+ <input type="checkbox" name="animal" value="犬">いぬ
43
+ <input type="checkbox" name="animal" value="猫">ねこ
44
+ <input type="checkbox" name="animal" value="うさぎ">うさぎ<br>
45
+ <input type="submit" value="送信する" onclick="createPDF()">
46
+ </form>
47
+ </body>
48
+
49
+ <script>
50
+ function createPDF(){
51
+ google.script.run.withSuccessHandler().GetInfo();
52
+ }
53
+ </script>
54
+
55
+ </html>
56
+
57
+ ```
58
+ ```GAS
59
+ function doGet() {
60
+
61
+ var toppage=HtmlService.createTemplateFromFile("index");
62
+
63
+ return toppage.evaluate();
64
+
65
+ }
66
+
67
+ function doPost(postdata){
68
+
69
+ var sh=SpreadsheetApp.openById('XXXXXXXXXX');
70
+ var sheetForm=sh.getSheetByName('回答一覧');
71
+ var time=new Date();
72
+
73
+ var name=postdata.parameters.name.toString();
74
+ var gender=postdata.parameters.gender.toString();
75
+ var animal=postdata.parameters.animal.toString();
76
+
77
+ //セッション情報からユーザID(メールアドレス)を取得
78
+ var objUser = Session.getActiveUser();
79
+ var mail = objUser.getEmail();
80
+
81
+ sheetForm.appendRow([time,name,gender,animal,mail]);
82
+
83
+ var resultpage=HtmlService.createTemplateFromFile("result");
84
+ return resultpage.evaluate();
85
+
86
+ ```