質問編集履歴

3

書式の改善、誤字の修正

2024/06/26 06:32

投稿

3_April_2021
3_April_2021

スコア48

test CHANGED
@@ -1 +1 @@
1
- doPostの戻り値は何ために使用するどのようなものですか?
1
+ doPost 関数の戻り値の役割と使用方法について
test CHANGED
@@ -1,59 +1,28 @@
1
- POSTリクエストを行う際に、doPost戻り値を指定する必要があると見受けられるような動作確認しました。しかし、それが何のために必要などのようなものかまではわかませんでした。
1
+ フォーム送信後の画面遷移関する問題で、doPost関数の戻り値に不要な値を指定する必要がある理由りた
2
2
 
3
- ```html
3
+ ----
4
+ doPost関数の戻り値に不要な値を指定しなければならない状況が発生しています。4つの異なるアプローチは期待通りに動作しませんでした。
4
5
 
6
+ 1. doPost関数が存在しない場合:「スクリプト関数が見つかりません: doPost」
7
+ 2. return;やlet i= 1;のような戻り値を指定した場合:「スクリプトが完了しましたが、何も返されませんでした。」
8
+ 3. return 1; のような値を戻り値として指定した場合:「スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。」。
9
+ 4. HtmlTemplateオブジェクトを戻り値として指定した場合:doGet関数の戻り値を優先することで画面遷移処理を実現します。
10
+ ```
11
+ function doGet(e) {
12
+ const page = e.parameter['page'];
13
+ if (page) {
14
+ return HtmlService.createTemplateFromFile(page).evaluate();
15
+ }
16
+ return HtmlService.createTemplateFromFile('defaultPage').evaluate();
17
+ }
18
+ ```
19
+ ```
5
- <!-- orange.html -->
20
+ <!-- defaultPage.html -->
6
-
7
21
  <form action='' method='post'>
8
-
9
- <button type='submit' formaction='https://~/dev'>指定なし</button>
22
+ <button type='submit' formaction='https://~/dev'>Default Page</button>
10
-
11
- <button type='submit' formaction='https://~/dev?p=banana'>banana</button>
23
+ <button type='submit' formaction='https://~/dev?page=banana'>Banana Page</button>
12
-
13
24
  </form>
14
-
15
25
  ```
16
-
17
- ```gs
18
-
19
- function doGet(e){
20
-
21
- const page=e.parameter['p'];
22
-
23
- if(page){return HtmlService.createTemplateFromFile(page).evaluate();}
24
-
25
- return HtmlService.createTemplateFromFile('orange').evaluate();
26
-
27
- }
28
-
29
- ```
26
+ 追記
30
-
31
- この表の結果は、両方のボタンに共通して確認しました。
32
-
33
- |doPost|結果|
34
-
35
- |:--:|:--:|
27
+ ----
36
-
37
- |存在しない|スクリプト関数が見つかりません: doPost|
38
-
39
- |, return;, let i= 1;|スクリプトが完了しましたが、何も返されませんでした。|
40
-
41
- |return 1;|スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。|
42
-
43
-
44
-
45
- 下記の現象は、<base target="_top">が挿入されていないこと(直接的または間接的な)原因として発生していたことがわかりました。この部分を変更することで、doPostの戻り値を反映できることを確認ています
28
+ <base target="_top">タグ追加することで、doPost関数の戻り値を利用した画面遷移処理を実装することができま
46
-
47
- ~~(同じプロジェクトに存在する)HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。~~
48
-
49
- |button|doPost戻り値|表示|
50
-
51
- |:--:|:--:|:--:|
52
-
53
- |指定なし|apple.html|orange.html|
54
-
55
- |banana|apple.html|banana.html|
56
-
57
-
58
-
59
- ~~この質問の背後にある問題はフォーム送信後の画面遷移で、すでに見た目には意図したとおりに機能するコードを記述できます。しかしこの質問の疑問が解決されていないため、現段階ではdoPost戻り値に不要な値を指定する必要があります。このためにこの質問の疑問を解決したいのですが、助けていただくことはできますか。~~

2

macaron_xxxユーザの指摘内容に関する情報を反映:誤字修正

2021/09/07 04:19

投稿

3_April_2021
3_April_2021

スコア48

test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
 
44
44
 
45
- 下記の現象は、<base target="_top">が挿入されていないことが原因で(直接的または間接的)発生していたことがわかりました。 この部分を変更することで、doPostの戻り値を反映できることを確認しています。
45
+ 下記の現象は、<base target="_top">が挿入されていないこと(直接的または間接的原因として発生していたことがわかりました。この部分を変更することで、doPostの戻り値を反映できることを確認しています。
46
46
 
47
47
  ~~(同じプロジェクトに存在する)HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。~~
48
48
 

1

macaron_xxxユーザの指摘内容に関する情報を追加

2021/09/07 04:19

投稿

3_April_2021
3_April_2021

スコア48

test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,9 @@
42
42
 
43
43
 
44
44
 
45
+ 下記の現象は、<base target="_top">が挿入されていないことが原因で(直接的または間接的に)発生していたことがわかりました。 この部分を変更することで、doPostの戻り値を反映できることを確認しています。
46
+
45
- (同じプロジェクトに存在する)HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。
47
+ ~~(同じプロジェクトに存在する)HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。~~
46
48
 
47
49
  |button|doPost戻り値|表示|
48
50
 
@@ -54,4 +56,4 @@
54
56
 
55
57
 
56
58
 
57
- この質問の背後にある問題はフォーム送信後の画面遷移で、すでに見た目には意図したとおりに機能するコードを記述できます。しかしこの質問の疑問が解決されていないため、現段階ではdoPost戻り値に不要な値を指定する必要があります。このためにこの質問の疑問を解決したいのですが、助けていただくことはできますか。
59
+ ~~この質問の背後にある問題はフォーム送信後の画面遷移で、すでに見た目には意図したとおりに機能するコードを記述できます。しかしこの質問の疑問が解決されていないため、現段階ではdoPost戻り値に不要な値を指定する必要があります。このためにこの質問の疑問を解決したいのですが、助けていただくことはできますか。~~