回答編集履歴

2

修正したスクリプトを追加した。

2018/10/18 03:02

投稿

kisojin
kisojin

スコア899

test CHANGED
@@ -115,3 +115,15 @@
115
115
  };
116
116
 
117
117
  ```
118
+
119
+ ## 追加2
120
+
121
+ ご用意されているHTMLでの``op.value = array_data[i].val``, ``op.text = array_data[i].txt``に合わせるためにGAS側のスクリプトにある最終行の``return array_data;``を次のように変更して動作をご確認ください。スクリプトを変更した際は、新たなバージョンとしてWeb Appsを再デプロイしてから実行してください。これをしないと変更されたスクリプトが反映されませんので注意してください。
122
+
123
+
124
+
125
+ ```javascript
126
+
127
+ return array_data.map(function(e, i){return {val: i, txt: e}});
128
+
129
+ ```

1

修正ポイントを追加しました。

2018/10/18 03:02

投稿

kisojin
kisojin

スコア899

test CHANGED
@@ -43,3 +43,75 @@
43
43
  };
44
44
 
45
45
  ```
46
+
47
+
48
+
49
+ ## 追加
50
+
51
+ - Web AppsをdoGet()を使ってブラウザから起動している。
52
+
53
+ - そちらのHTMLは一部ではなく実際にそのものを使用している。
54
+
55
+
56
+
57
+ 上記のように仮定して修正したHTMLを下記に記載致します。下記HTML, GASをコピーペーストした後は、Web Appsを新たなバージョンとして再デプロイしてください。
58
+
59
+
60
+
61
+ ## 修正したHTML
62
+
63
+ 下記をHTMLへコピーペーストしてください。
64
+
65
+ ```javascript
66
+
67
+ <div class="select_style">
68
+
69
+ <select id="start_time" name="start_time" onclick="createSelectBox()" required></select>
70
+
71
+ </div>
72
+
73
+ <script>
74
+
75
+ function createSelectBox(){
76
+
77
+ google.script.run.withSuccessHandler(function(res) {
78
+
79
+ for(var i=0;i<res.length;i++){
80
+
81
+ let op = document.createElement("option");
82
+
83
+ op.value = res[i].val; //value値
84
+
85
+ op.text = res[i].txt; //テキスト値
86
+
87
+ document.getElementById("start_time").appendChild(op);
88
+
89
+ }
90
+
91
+ }).downlist();
92
+
93
+ };
94
+
95
+ </script>
96
+
97
+ ```
98
+
99
+
100
+
101
+ ## GAS側
102
+
103
+ 本質問の回答としてはGAS側のスクリプトは特に問題になりませんのでサンプルとして下記を使用してください。
104
+
105
+
106
+
107
+ ```javascript
108
+
109
+ function downlist(){
110
+
111
+ var res = [{val: "val1", txt: "txt1"}, {val: "val2", txt: "txt2"}, {val: "val3", txt: "txt3"}];
112
+
113
+ return res;
114
+
115
+ };
116
+
117
+ ```