google.script.run
- 由於我們使用 google.script.run 進行前後端數據傳輸和互動,所以事實上並沒有將表單送出,而是透過 google.script.run 調用後台函式,因此需要自行取值
insertData()
- 驗證成功後會執行函式 insertData()
- 當初表單是根據結構產生,需要取值的範圍,一樣根據結構即可
/*===============================
將資料送到gas寫入工作表
===============================*/
function insertData(){
let formData = {};
let check,v;
//若表單取值
<? for(let i in stru){ ?>
<? if(stru[i].form_kind == "複選"){ ?>
check = $("input[name='<?= stru[i].form_name ?>']");
v = [];
for(var i=0; i < check.length; i++){
if (check[i].checked) {
v.push(check[i].value);
}
}
formData[<?= stru[i].form_name ?>] = v.join("|");
<? }else if(stru[i].form_kind == "單選"){ ?>
check = $("input[name='<?= stru[i].form_name ?>']");
v = '';
for(var i=0; i < check.length; i++){
if (check[i].checked) {
v=check[i].value;
break;
}
}
formData[<?= stru[i].form_name ?>] = v;
<? }else{ ?>
formData[<?= stru[i].form_name ?>] = document.getElementById(<?= stru[i].form_name ?>).value;
<? } ?>
<? } ?>
// validate
// formData['op_userId'] = '<?= global.userId?>';
// formData['op_replyToken'] = '<?= global.replyToken?>';
//樣板執行 函式 apps script function
//調用GAS => 函式 insert_關鍵字(formData)
insert_op='<?= global.insert_op?>';
google.script.run.withSuccessHandler(onSuccess)[insert_op](formData);
setIdAttribute('main-content','d-none');//關閉主畫面
setIdAttribute('show','my-5'); //開啟等待畫面
}