前提・実現したいこと
HTMLのメールフォームから送信されたデータを、GASで受け取り、Googleスプレッドシートに書き込んでいきたいのです。
発生している問題・エラーメッセージ
いろいろググったところ、こちら↓が一番シンプルだったので、GoogleDriveで新しいスプレッドシートを作り、そこからスクリプト エディタを立ち上げ、全部コピーしてやってみたのですがうまくいきません。
https://productivityresearch.net/programing/116/
<以下、やったことの追記です>
1.GoogleDriveを立ち上げる
2.マイドライブから「Googleスプレッドシート」を選択
3.表示されたスプレッドシートの「ツール」の「スクリプト エディタ」を選択
4.コード.gsの画面で、表示文をすべて削除して上のコード.gsのソースコードをコピペ
5.スクリプト エディタの画面で、「ファイル」「New」「HTMLファイル」を選択
6.名前を「index」として、表示文をすべて削除して上のindex.htmlのソースコードをコピペ
7.再度 5.
8.名前を「result」として、表示文をすべて削除して上のresult.htmlのソースコードをコピペ
9.できた3つのページを保存
10.スクリプト エディタの画面で、「公開」「ウェブ アプリケーションとして導入」を選択
11.更新を選択するとアクセス許可を求めてくるので許可の処置を実行
12.latest codeをクリックして送信フォーム画面を表示
13.入力し送信ボタンをクリック
14. 3.のスプレッドシートを確認。(何も表示されない)
15.スクリプト エディタの画面で、「実行」「関数を実行」「doGet」を選択(無事終了)
16.スクリプト エディタの画面で、「実行」「関数を実行」「doPost」を選択
その結果、(赤いポップアップの中に)
TypeError: Cannot read property 'parameters' of undefined(行 14、ファイル「コード」)
と表示される。
エラーメッセージ TypeError: Cannot read property 'parameters' of undefined(行 14、ファイル「コード」) というエラーがでます。 ### 該当のソースコード 以下すべてGAS内で記述しています。(上記サイトから丸々コピペです。) コード.gs function doGet() { var toppage=HtmlService.createTemplateFromFile("index"); return toppage.evaluate(); } function doPost(postdata){ var sh=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var time=new Date(); var name=postdata.parameters.name.toString(); // ← ここでエラー! (行 14、ファイル「コード」) var gender=postdata.parameters.gender.toString(); var animal=postdata.parameters.animal.toString(); sh.appendRow([time,name,gender,animal]); var resultpage=HtmlService.createTemplateFromFile("result"); return resultpage.evaluate(); } index.html <!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <h1>doPostによる方法</h1> <form method="post" action="https://script.google.com/macros/s/AKfycbwvNsTpF5-yq9IH6_kFutV_JjUAU1-uojNZghC-CfW4x9lov389/exec"> 氏名:<input type="text" name="name"><br> 性別: <input type="radio" name="gender" value="男性">男性 <input type="radio" name="gender" value="女性">女性<br> 好きな動物: <input type="checkbox" name="animal" value="犬">いぬ <input type="checkbox" name="animal" value="猫">ねこ <input type="checkbox" name="animal" value="うさぎ">うさぎ<br> <input type="submit" value="送信する"> </form> </body> </html> result.html <!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> 送信が完了しました。<br><br> <a href="https://script.google.com/macros/s/AKfycbwvNsTpF5-yq9IH6_kFutV_JjUAU1-uojNZghC-CfW4x9lov389/exec">もう一度回答する</a> </body> </html> ```ここに言語名を入力 ソースコード
試したこと
このエラーメッセージは見に行っている先のファイルに問題がある(parameter を認識できない)というようなことを書かれているサイトがあったのですが、
index.htmlのどこをいじっても解決できません。
メールフォーム自体は生成されるのでテスト送信してみたのですが、当然スプレッドシートには何も表示されません。
本来なら上述のサイトで質問すべきですがどうも質問できないようなのでこちらでお尋ねします。
当方素人なのでお手上げです。、
どなたか解決策をご教示願います。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/12 22:10