学生と社会人入力でセクションを分ける
本来、講習会参加申し込みには学生と社会人の区分が有ります。
それぞれにフォーム入力項目が異なるので、学生と社会人の確認を行い回答に応じて入力をセクションを分けてみます。
googleフォームで動作を設定するイメージです。
学生と社会人の入力条件
学生 参加 の場合以下の情報が必要になります
- 学校名
- 顧問名
- 顧問メールアドレス
- 顧問電話番号
社会人参加の場合以下の情報が必要になります
- 職業
- 会社名
- 本人メールアドレス
- 本人電話番号
GASでラジオボタンの回答に応じで移動先セクションを変える
以下が学生と社会人にセクション分けを行い最初のラジオボタン選択によって学生セクションと社会人セクションへ分岐する流れの部分になります。
function doopen() { var form = FormApp.create('分岐テスト'); var ss = SpreadsheetApp.getActiveSpreadsheet(); form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()); var item = form.addMultipleChoiceItem(); Logger.log('学生'); var student = form.addPageBreakItem().setTitle('学生'); var stu = item.createChoice('学生', student); form.addTextItem().setTitle('学校名').setRequired(true); form.addTextItem().setTitle('顧問名').setRequired(true); var validationEmail = FormApp.createTextValidation().requireTextIsEmail().build(); form.addTextItem().setTitle('顧問メールアドレス').setRequired(true).setValidation(validationEmail); var validationphone = FormApp.createTextValidation().requireNumber().build(); form.addTextItem().setTitle('顧問電話番号').setValidation(validationphone); form.addTextItem().setTitle('学生その他'); student.setGoToPage(FormApp.PageNavigationType.SUBMIT); var society = form.addPageBreakItem().setTitle('社会人'); var soc = item.createChoice('社会人', society); form.addTextItem().setTitle('職業').setRequired(true); form.addTextItem().setTitle('会社名').setRequired(true); var validationEmail = FormApp.createTextValidation().requireTextIsEmail().build(); form.addTextItem().setTitle('本人メールアドレス').setRequired(true).setValidation(validationEmail); var validationphone = FormApp.createTextValidation().requireNumber().build(); form.addTextItem().setTitle('本人電話番号').setValidation(validationphone); form.addTextItem().setTitle('社会人その他'); society.setGoToPage(FormApp.PageNavigationType.SUBMIT); item.setChoices([stu, soc]); }
処理の流れ
セクション分け
フォームクラスのaddPageBreakItem()メソッドで、2つのセクションに分かれsetTitle(セクション名)メソッドでセクション名を設定しています。
分岐方法
フォームクラスのaddMultipleChoiceItem()メソッドでフォームにラジオボタンを追加しています。(var item = form.addMultipleChoiceItem();行)
各セクションの先頭にcreateChoice(選択肢、分岐先セクション名)を記述し最終行で、フォームのラジオボタンにそれぞれの値をセットしています。
createChoice(value, navigationItem)
setChoices(choices)
Googleリファレンス フォームクラス
Class Form | Apps Script | Google for Developers