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

質問編集履歴

3

書式の改善、誤字の修正

2024/06/26 06:32

投稿

3_April_2021
3_April_2021

スコア48

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

2

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

2021/09/07 04:19

投稿

3_April_2021
3_April_2021

スコア48

title CHANGED
File without changes
body CHANGED
@@ -20,7 +20,7 @@
20
20
  |, return;, let i= 1;|スクリプトが完了しましたが、何も返されませんでした。|
21
21
  |return 1;|スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。|
22
22
 
23
- 下記の現象は、<base target="_top">が挿入されていないことが原因で(直接的または間接的)発生していたことがわかりました。 この部分を変更することで、doPostの戻り値を反映できることを確認しています。
23
+ 下記の現象は、<base target="_top">が挿入されていないこと(直接的または間接的原因として発生していたことがわかりました。この部分を変更することで、doPostの戻り値を反映できることを確認しています。
24
24
  ~~(同じプロジェクトに存在する)HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。~~
25
25
  |button|doPost戻り値|表示|
26
26
  |:--:|:--:|:--:|

1

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

2021/09/07 04:19

投稿

3_April_2021
3_April_2021

スコア48

title CHANGED
File without changes
body CHANGED
@@ -20,10 +20,11 @@
20
20
  |, return;, let i= 1;|スクリプトが完了しましたが、何も返されませんでした。|
21
21
  |return 1;|スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。|
22
22
 
23
+ 下記の現象は、<base target="_top">が挿入されていないことが原因で(直接的または間接的に)発生していたことがわかりました。 この部分を変更することで、doPostの戻り値を反映できることを確認しています。
23
- (同じプロジェクトに存在する)HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。
24
+ ~~(同じプロジェクトに存在する)HTMLファイルを基に作成したHtmlOutputオブジェクトを戻り値として指定したところ、どちらのボタンもエラーにならず、 どちらのボタンでもdoGet戻り値を優先した結果が表示されることを確認しました。~~
24
25
  |button|doPost戻り値|表示|
25
26
  |:--:|:--:|:--:|
26
27
  |指定なし|apple.html|orange.html|
27
28
  |banana|apple.html|banana.html|
28
29
 
29
- この質問の背後にある問題はフォーム送信後の画面遷移で、すでに見た目には意図したとおりに機能するコードを記述できます。しかしこの質問の疑問が解決されていないため、現段階ではdoPost戻り値に不要な値を指定する必要があります。このためにこの質問の疑問を解決したいのですが、助けていただくことはできますか。
30
+ ~~この質問の背後にある問題はフォーム送信後の画面遷移で、すでに見た目には意図したとおりに機能するコードを記述できます。しかしこの質問の疑問が解決されていないため、現段階ではdoPost戻り値に不要な値を指定する必要があります。このためにこの質問の疑問を解決したいのですが、助けていただくことはできますか。~~